1.二路分支
逻辑:程序中某一段代码需要满足一顶得条件才会被执行
语法:
- if语句:表达一种,如果条件满足则执行某个代码块
- if-else语句:如果条件满足执行某个代码块否则执行另外一个代码块
注意:
if语句可以单独使用,但是else不可以单独使用,必须在if后面配套使用。
2.多路分支
逻辑:根据不同得条件执行不同得代码块
语法:
switch (表达式<判断的条件)
{
case<常量1>:
//代码块
break;
case<常量2>:
//代码块
break;
case<常量3>:
//代码块
break;
default:
//代码块
}
注意:
switch(num)语句中的num必须是整形(char、short,int,long等)或枚举类型。(char也属于整形)。。
case 后面的值必须是整形常量,包括普通的字符。不包括被const修饰的整形数据,而不能是变量。
default 是可选的,当没有匹配的case时,执行default。不是必须存在的。
break 语句可以使程序跳出switch语句块,如果没有break,会执行下一个case 语 句块,直到遇到break或者执行到switch结尾,这个现象称为穿透。
3.while和do...while循环
逻辑; 使得程序中某一端代码块重复执行
语法:
while(表达式)
{
/// 代码块
}
while的逻辑:.
do...while的逻辑:
do...while语法:
do
{
//代码块
}
while(表达式)
注意:
- while循环先进行判断条件,条件为真然后在执行代码块(有可能一次不执行)
- do...while循环先执行代码块在判断条件是否成立(最少执行一次)
- while(num); 加了分号就变成空循环了
- do...while(num); 这个分号不能丢
4.for循环语句
逻辑:与while类似,都是让程序中某一段代码块重复运行,但是for相对于while来说更紧凑。把所有循环控制都集中到一行代码中。
for(初始化语句;判断语句;表达式(一般用于自加和自减))
{
/// 代码块
}
实例:
for(size_t i = 0;i < num; ++i)
{
printf("i:%ld\n",i);
}
注意:
- 初始化语句只会被执行一次
- 第三个表达式中第一次循环时++i在第一次循环时并没有执行
- 第三个表达式中前缀/后缀并不影响i再循环中取值的先后
- 在for循环中直接定义并初始化只在C99的编译规则下可以这么干, 所 以可以添加
5.break和continu:
break:跳出循环结构 / 跳出当前层的循环
continu:结束当前循环,进行下一次的循环
6.goto语句
逻辑:跳转语句------无条件跳转
语法:
实例:
注意:
- 标签后面有个冒号:
- goto 语句是一个无条件跳转的语句, 不利于程序的可读性,一般不建议使用
- goto 语句一般出现在驱动比较多, 用来处理严重的错误,并退出