break的特点:
1、break如果用于循环是用来终止循环的; 2、break如果用于switch,则是用于终止switch; 3、break不能直接用于if,除非if属于循环内部的一个子句; 下面进行举例:
解释不能用于if,除非if是for循环的内部的一个子句:
. . .
{
for (i=0; i<3; ++i)
if(3>2)
. . . .
break;
. . . .
printf(\"hehe\\n\");
. . . .
}
上面的程序输出为
Press any key to continue
.
也就是说这个语句中的break虽然是if内部的一个语句,但是用来终止外部的for循环的,因此判断if成立后,执行break,使得程序跳出for循环,所以一次也没有输出“hehe”,没有输出。 break用于多个for循环的举例:
.
for (i=0; i<3; ++i)
. .
{
. . . . . .
for (j=1; j<4; ++j)
break:
. . . .
printf(\"HAHA\\n\");
. . . .
}
. . . .
HAHA
上方程序的输出为:
HAHA
. . . .
HAHA
因为上方的程序中break是把第二个for循环终止了,但printf函数不属于第二个for循环,因此输出了三次HAHA,如果break终止最外面的for循环,那么一次HAHA都不会输出,所以结论为:在多层循环中,break只能终止其最近的循环。
同样在多层switch嵌套中,break只能够终止距离其最近的switch语句。
.
. . .
int x=1, y=0, a=0, b=0;
switch(x)//第一个switch
. . . .
{
case 1:
. . . . . .
{
switch(y)//第二个switch
case 0
. . . . . . . . . . . . . .
}
a++;
break;//终止第二个switch
case 1:
b++;
break;
b=100;
. .
. . . .
case 2:
break;//终止第一个switch
a++;
. . . . . . . .
}
b++;
break;
以上的程序结果为 a = 1; b = 100。
.
因篇幅问题不能全部显示,请点此查看更多更全内容