1.switch语句
switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重 的 else if 改成更易⽤、可读性更好的形式。
switch (expression)
{
case value1: statement
case value2: statement
default: statement
}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值, 就执⾏ default 分⽀。
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式
*switch语句中*的break:
Switch语句只能决定分支入口,只有在 switch 语句中使用 break 才能在跳出 switch 语句,如果某⼀个 case 语句的后边没break 语句,代码会继续往下执行,有可能执行其他 case 语句中的代码,直到遇到 break 语句或者 switch 语句结束。
*switch语句中的default:
在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,比如 switch 后的表达式中的值无法匹配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊default。
*case和default的顺序问题:
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满足实际需求的就可以。 不过我们通常是把 default 子句放在最后处理。
2.while语句
首先上来就是执行判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执行循环语 句,语句执行完后再继续判断,是否进行下⼀次判断。
3. for循环
for(表达式1; 表达式2; 表达式3)
表达式1 ⽤于循环变量的初始化
表达式2 ⽤于循环结束条件的判断
表达式3 ⽤于循环变量的调整
⾸先执⾏ 表达式1 初始化循环变量,接下来就是执⾏ 表达式2 的判断部分, 表达式2 的结果如果 ==0,则循环结束; 表达式2 的结果如果!=0则执⾏循环语句,循环语句执⾏完后,再去执⾏表 达式 3 ,调整循环变量,然后再去 表达式2 的地⽅执⾏判断, 表达式2 的结果是否为0,决定循环是否继 续。 整个循环的过程中,表达式1初始化部分只被执⾏1次,剩下的就是表达式2、循环语句、表达式3在循 环。
4.do-while循环
do
语句;
while(表达式);
在 do while 循环中先执⾏语句,执⾏完语句,再去执行“判断表达式”,判断表达式的 结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。 所以在 do while 语句中循环体是⾄少执行⼀次的,这是 do while 循环⽐较特殊的地方。
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int cnt = 0;
do
{
cnt++;
n = n / 10;
} while (n);
printf("%d\n", cnt);
return 0;
}
5.break和continue语句
• break 的作⽤是用于永久的终⽌循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
• continue 的作⽤是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。
6.嵌套循环
7.goto语句
goto 语句可以实现在同⼀个函数 内跳转到设置好的标号处。
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
error:
//...
本来 for 循环想提前退出得使用 break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套就使用3个 break 才能跳出循环,所以在这种情况下我们使用 goto 语句就会更加的快捷。