强化C【C语言笔记】——分支结构
关系运算符和表达式
比较两个量的运算符称为关系运算符
关系运算符及其优先级
C语言包括“<”、“>”、“>=”、"<="、"!="、"=="
关系运算符均为双目运算符,其结合性为左结合。关系运算符的优先级低于算数运算符,高于赋值运算符
其中<、<=、>、>=的优先级相同,!=、==的优先级相同
关系表达式
一般形式为:表达式 关系运算符 表达式;关系表达式允许出现嵌套的情况
关系表达式的值为“真”、“假”用“1”、“0”表示
逻辑运算符和表达式
逻辑运算符及其优先级
C语言的逻辑运算符包括:“||”、“&&”、“!”与或非
其中与运算符、或运算符具有左结合性、非运算符是右结合性
其优先级为:!非运算 > &&与运算 = ||或运算
并且,非运算符高于算数运算;与运算、或运算在关系运算和赋值运算符中间
逻辑表达式
一般形式为:表达式 逻辑运算符 表达式,允许嵌套的情形
逻辑表达式的也为“真”、“假”,分别用1,0表示
-
&&与运算 当两边表达式都为真,结果为真;反之为假
-
||或运算 当两边表达式有一方为真,则结果为真;反之为假
-
!非运算 当表达式为假时其结果为真;反之为假
if语句
if语句的三种形式
- if:当满足if的表达式时则执行其后的语句,否则不执行
if(表达式)
{语句1; 语句2;}
- if-else:当满足if的表达式时则执行其后的语句,否则执行else后的语句
if(表达式)
{语句1; 语句2;}
else
{语句3;语句4;}
- if-else if-if:当满足if的表达式则执行性其后语句;若不满足则判断else if后的表达式是否为真,为真则执行if else后的语句;否则执行else后面的语句
if(表达式)
{语句1; 语句2;}
else if(表达式)
{语句3;语句4;}
else
{语句5;语句6;}
在if语句中注意以下问题:
-
在if关键词后面的均为表达式,其表达式通常为逻辑表达式、关系表达式;也可以为赋值表达式、变量、常量等
-
if语句中,条件判断表达式必须用括号括起来,执行语句之后必须加分号
-
在if后的执行语句,如果为复用语句,需要将多个语句用“{}”括起来,以做好区分
if语句的嵌套
C语言规定,else总是与它前面最近的if匹配。
条件运算符和条件表达式
条件运算符是“?:”,它是一个三目运算符
一般形式为: 表达式1?表达式2:表达式3;
求值规则为:如果表达式1为真,则表达式2的值作为条件表达式的值,否则以表达式2的值作为条件表达式的值
条件表达式常常用于赋值语句中
switch语句
C语言的一种用于多分支选择的switch语句,一般形式为
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;
…
case常量表达式n: 语句n;
default : 语句n+1;
}
其语意为:计算表达式的值。并逐个与其后面的常量表达式比较,当与某个常量表达式的值相等时,即执行其后语句。如果与所有的case均不相同,则执行default语句
使用switch的时候注意:
-
在case后面的常量表达式的值不能相同,否则会出错
-
case后如果有多个语句,可以不用{}括起来
-
case和default的先后顺序可以随意变动
-
default子句可以省略
相关文章
【数据结构】——哈夫曼树
速通回忆 这里是完整的代码和运行结果,可以直接选择看下面代码的思路去快速回忆哈夫曼树,或从下面理论部分开始学习 ``` #include "stdio.h" #include "stdlib.h" /* 哈夫曼树结点的结构体 */ typedef struct { int weight; /* 权重 */ int parent; /* 父母结点下标 */ int l...
强化C【C语言笔记】——位运算
位运算符C语言提供了六种位运算符 - &:按位与 - !:按位或 - ^:异或 - ~:取反 - <<:左移 - \>>:右移 按位与运算 **其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0** 按位与运算通常用来对某些位清0 按位或运算 **其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就...
C语言中规中矩的大树
**没事干,写个树玩玩,真正的“撸树”** 在Ubuntu终端、VScode终端显示 代码 ``` #include "stdio.h" int main(){ int high = 5; //层高 int count = 5; //层数 int start; //每层开始*数 int...