分支语句和循环语句
操作符
可用于分支语句
关系操作符
“关系运算符”
> //大于运算符
< //小于运算符
>= //大于等于运算符
<= //小于等于运算符
== //相等运算符一个具有注脚的文本。[^1]
[^1]: ==是判断是否相等,而=是给变量赋值
!= //不相等运算符
注意:
- 为避免比较数据时不小心写成=,建议把变量写在相等运算符右边,这样写的话如果误写,程序运行就会报错哦!
- 另外,多个关系运算符不宜连用!因为关系运算符是从左到右运行的,而关系表达式返回值通常为0或1。
关系表达式返回值通常为0或1,C语言中0为假,1为真。
条件操作符
“三目操作符”
exp1 ? exp2 : exp3
计算逻辑
- 若exp1为真,结果返回exp2 的计算结果
- 若exp1为假,结果返回exp3 的计算结果
逻辑操作符
! //逻辑取反运算符
&& //逻辑与运算符
|| //逻辑或运算符
短路
C语言逻辑运算符有个特点是总是从左往右计算,若左边表达式满足运算符条件,就不再对右边的表达式求值也就是说右边表达式的计算被忽略,这就是短路。
分支语句
if语句
if和else语句语法形式如下:
if(表达式)
语句1
else
语句2
- 默认在if和else语句中默认只控制一条语句,如果想要控制多条语句可以使用{},这个块叫:程序块或复合语句
if(表达式)
{
语句1
语句2
}
else
{
语句3
语句4
}
嵌套if
else可以与另一个if连用构成多重判断。
if(表达式)
语句
else if(表达式)
语句
else
语句
悬空else
if(表达式)
if(表达式)
语句
else
语句
else总是与最近的if匹配!
swich语句
switch(expresssion)
{
case value1: statement
case value2: statement
default: statement
}
根据expression不同的值,执行相应的case分支,如果没有对应的值就执行default分支,不用考虑两者顺序。
注意:
- switch后的expression必须是整形表达式
- case后的值必须是整形常量表达式
- case和后面的数字之间必须有空格
- 每个case语句中的代码执行完之后要加上break,才能跳出这个switch语句
循环语句
for语句
for(表达式1;表达式2;表达式3)
{
语句
}
- 表达式1用于循环变量的初始化
- 表达式2用于循环结束条件的判断
- 表达式3用于循环变量的调整
while语句
while(表达式)
{
语句
}
do while语句
do
语句
while(表达式);
- while和for都是先判断,条件满足后就进入循环,执行循环语句,如果不满足就跳出循环,而do while直接进入循环体,再判断while后的表达式,若表达式为真,继续循环,否则不再循环。do while至少执行循环体一次。
break和continue语句
- break直接永久跳出循环
- continue仅跳过本次循环中continue后的代码。有时会因为while语句中循环变量调整语句的位置不同,从而使代码执行顺序发生变化,导致在相似的while和for语句的代码执行结果不同。
go to语句
举例
for(...)
{
if(...)
goto error;
}
error:
可以迅速跳过中间代码,直接来到error,在多个循环语句嵌套时跳出循环非常方便,但能不用就不用,容易使逻辑混乱,出现错误。