做判断
if-else 语句
- if(条件成立){
…
} else {
…
}
-
条件成立执行
if
后面的语句,若不成立则执行else
后面的语句 -
if-else
语句后面可以没有{ },而是一条语句(需要加 ; ),但只会执行这一条语句
关系运算
- 关系运算符
- ![[未命名图片.png]]
\=\=
和!=
比其他运算符优先级低,所有关系运算符的优先级比算术运算符低,但比赋值运算符高
做循环
while 循环
- while(<循环条件>)
{
<循环体语句>
}
- 循环执行前会判断是否循环,当条件满足时,不断重复循环体内的语句,不满足时一次也不会被执行
do-while 循环
- do
{
<循环体语句>
} while(<循环条件>);
-
进入循环时不做判断,而是在执行完一轮循环体语句后,再来检查循环的条件是否满足,如果满足则继续循环,不满足则结束循环
-
两个循环的区别是:while可能一次都不会执行,而do-while至少执行一次循环体语句,并且结尾需要加分号
for 循环
for(<初始动作> ; <循环条件> ; <每轮的动作>(执行完循环体语句后执行))
{
<循环体语句>;
}
-
建议在for语句中定义循环变量(仅限C99),做求和的程序时,记录结果的变量应该初始化为0,而做求积的变量时,记录结果的变量应该初始化为1。
-
for中的每一个表达式都是可以省略的,但分号不能省略
-
for( ; 条件 ; ) = while(条件)
循环的选择
-
如果有固定次数,用
for
-
如果必须执行一次,用
do while
-
其他情况用
while
逻辑类型和运算
逻辑类型
bool 类型
-
返回
ture
或false
-
需要增加头文件
#include<stdbool.h>
逻辑运算
-
逻辑运算是对逻辑量进行的运算,结果只有0或1
-
逻辑量是关系运算或逻辑运算的结果
-
若要表达数学中的区间,如:×∈(4,6)
不能写4<x<6,因为逻辑运算结果只有0或1,计算机判断前半部分4<x是否成立,给出0或1后才会再和6作比较,x>4&&x<6才是正确的表达方法。
-
判断一个字符是否是大小写字母
`c>='A'&&c<='Z'`(大写)//` c>='a'&&c<='z'`(小写)
条件运算
-
m<n ? x : a+5
-
判断
m<n
是否成立,成立执行x,不成立执行a+5
逗号运算
-
逗号的优先级最低
-
一般只用于
for
循环 -
for(i=0,j=l0;i<j;i++,j--)…
嵌套、级联和多路分支
嵌套的 if-else
-
当if的条件满足或者不满足的时候要执行的语句也是一条
if
或if-else
语句,这就是嵌套的if
语句 -
else
总是与最近的if
匹配 -
建议:即使只有一条语句的时候,也在
if
或else
后面加上{}
级联的if-else
- if (expl)
stl;
else if (exp2)
st2;
else
st3;
- 如果不这样写,用嵌套会导致代码越来越往右偏,这种写法把所有else语句都对齐
多路分支
switch-case 语句
switch(控制表达式){
case 常量:
语句;
……;
case 常量:
语句;
……;
default(除上述条件以外的各种情况):
语句;
……;
}
-
控制表达式只能是整数型(int)的结果
-
常量可以是常数,也可以是常数计算的表达式
-
在执行完分支中的最后一条语句后,如果后面没有break,就会按顺序执行到下面的case里去,直到遇到一个break或者switch结束为止。
循环控制
-
break
:跳出循环,只能跳出所在的循环 -
接力break
:运用中间变量,在循环外面连续if判断使用break -
continue
:跳过循环这一轮剩下的语句进入下一轮 -
goto
:在循环里需要离开的位置放上goto X(非固定),在要跳到的位置写上X: