break 和 continue
break 的作用是永久终止本级循环,只要break被执行,直接就会跳出循环,继续往后执行
continue 的作用是跳过本次循环中continue后面的代码,在for循环和while循环中有差异
(一)break用法
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break; // i = 5时,跳出整个while循环
printf("%d ",i);
i++;
}
return 0;
}
程序分析:首先i==1,进入while条件判断表达式(i<=10),执行循环体内容
判读i不等于5,跳过if语句,执行输出 1,后i++,i== 2,以此类推
当i==5时,while循环体内的if条件判断表达式(i==5)为真,则执行i语句break。
程序执行结果:1 2 3 4
注意:
break跳出的是本级循环,本级循环即为while循环,不是跳过if选择语句后面的程序,再次进入循环,而是直接跳出整个while循环体,执行return 0语句。
(二)continue用法
和break有显著区别的是continue,同样的程序将break换为break则完全不同,举例说明:
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
// i = 5时,跳出本次循环后续的printf和i++
// i == 5 < 10
// 又来到if(i == 5) ,卡这了
printf("%d ",i);
i++;
}
return 0;
}
程序分析:
首先i==1,进入while条件判断表达式(i<=10),执行循环体内容
判读i不等于5,跳过if语句,执行输出 1,后i++,i== 2,以此类推
当i==5时,while循环体内的if条件判断表达式(i==5)为真,则执行语句continue。
continue跳过本次循环后的 printf语句 与 i++后,再次进入while循环;
因为没有执行i++这条语句,导致i的值依然为5,再次进入if判断语句,执行continue,进入死循环。
程序执行结果:1 2 3 4 _ ,注意此处的 _ 表示光标闪烁,程序没有结束,依然再执行while循环体中的内容。
再次举例子说明区别:
int main()
{
for (int i = 0; i <= 10; i++)
{
if (i == 5)
{
// break; // 直接结束for循环 0 1 2 3 4
continue; // 不执行continue后的语句,即不打印5,0 1 2 3 4 6 7 8 9 10
}
printf("%d ",i);
}
}
程序分析:
如果程序中if语句后是break时,当循环到i==5时,直接跳出本级循环,即for循环
程序输出:0 1 2 3 4
如果程序中if语句后是continue时,当循环到i==5时,跳过continue后面的语句printf函数,取消一次打印,再次进入循环体,直到for循环条件判断满足结束
程序输出:0 1 2 3 4 6 7 8 9 10