流程控制
分支
if(){}
if(){} else{}
if(){} else if(){} else{}
如果要执行的语句体只有一行,大括号可以省略,但从代码规范上来说一定不能省略。
switch(结果为整型的表达式)
{
// val的值必须是常量(字面值数据,枚举值)。
case val: 语句; break;
...
default
}
switch是一种开关结构的语句,case后的值与switch小括号中的值进行匹配,成功则打开执行开关,break可以关闭执行开关,如果每个case后都有一个break就会形成分支结构。
当所有case都没匹配成功,default会打开执行开关,直到遇见break才把开关关闭,无论放在任何位置都最后执行。
循环
for([1]; [2]; [3])
{
[4];
}
1、定义并初始化循环变量,C89标准中此处不能定义循环变量,必须定义循环外。
2、检查循环变量,为真时执行4
4、循环体
3、改变循环,防止变成死循环
1 2 4 3 2 4 3 … 2
for是一种灵活多变的循环,可以写出多种格式,1234也都可以省略,一般为了防止出错都使用循环变量来引导它的执行,index-> i,j,k,l。
while(表达式)
{
循环体
}
可以自作是for循环的精简版本,while负责解决知道循环条件不知道循环次数的问题,而for负责解决明确知道循环次数的问题。
do{
循环体
}while(表达式);
do while是一种先执行循环体再判断循环条件的循环,相同条件下会比for和while多执行一次,do while至少执行一次,for和while可能一次都不执行。
跳转:
标签名:
goto 标签名;
goto可以跳转到函数内的任意位置,但可能会破坏已有的分支、循环结构,因此比较危险,大多数公司都禁止使用,之所以没有取消,是因为它在驱动编程时非常适合处理异常(进行释放资源)。
break
在循环语句中可以跳转一层循环,在swith中可以关闭执行开关。
continue
可以结束本次循环,进入下次循环。
return
提前结束函数的执行,并把函数的执行结果交给调用者。