break的注意事项
这是我第一次写博客,有不足之处还请各位大佬见谅,我也会虚心听取各位大佬给我的宝贵意见。
在嵌套循环中,break语句只能结束离他最近的那个循环语句。
```c
#include<stdio.h>
int main()
{
int a = 0,b = 0;
int i,t;
for(i = 0;i < 5;i++)
{
for(t = 0;t < 5;t++)
{
break;
a++;
}
b++;
}
printf("a = %d b = %d\n",a,b);
return 0;
}
在这里,break语句只能终止里面那个for语句,所以在执行语句时,a++前面有这个break语句,然后a++这个表达式就不会被执行,,但是这个break语句只结束里面嵌套的那个for循环,所以b++这个语句依旧执行。最终执行结果就是a = 0 b = 5。
在switch语句中,break语句也是只能终止离break语句最近的那个switch语句。
```c
#include<stdio.h>
int main()
{
int a = 1,b = 0;
int c = 0,d = 0;
switch(a)
{
case 1:
switch(b)
{
case 0:
break;
c++;
}
case 2:
d++;
break;
}
printf("c = %d d = %d\n",c,d);
return 0;
}
所以这里的第一个break语句,他终止的语句是里面嵌套的那个switch语句,所以c++这个表达式就不会被执行,然后跳出来里面嵌套的switch语句,但是还是要继续往下执行,所以会执行d++这个表达式,然后输出结果为c = 0 d = 1.