在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。C语言提供了 break 和 continue 两个关键词,应用到循环中。
break 的作用:用于永久地终止循环,只要 break 被执行,直接会跳出循环,往后执行。
continue 的作用:用于跳过本次循环 continue 后面的代码,直接去判断部分在 for 循环和 while 循环中略有差异。
目录
while循环中的break和continue
break举例
在屏幕上打印1~10的值 - while
先看没有 break的情况,代码和结果如下:
while 循环在打印到10后停止。
再看加入break 后,假如 i == 5 时,加上 break ,代码和结果如下:发现结果只打印了1 2 3 4 ,使用监视窗口
这时,i 的值为1,不等于5,继续执行 i++
这时,i 的值为2,不等于5,继续执行i++,循环循环一直到 i 的值为5
下一步监视时,i== 5 ,执行 break ,跳出循环,打印结果为1 2 3 4
continue举例
同样,在屏幕上打印1~10的值 - while
答应结果1 2 3 4 后的光标一直在闪动,说明打印并没有结束,程序进入死循环。
监视程序(这里直接快进到循环到 i==5):
下一步,执行 continue:
注意!最左侧的黄色箭头从第9行直接跳到第6行,并没有执行下面两条代码。由于跳过了 i++ 回到上方,i 的值依然是5,符合 i == 5,执行 continue 。以此类推,程序陷入了死循环。
那我们将 i++ 放在 continue 之前是不是就不会陷入死循环了呢?代码和结果如下:
所以,当我们想要这个循环就此结束的时候,用 break 。当我们想某个条件发生时,这一次不要做的时候,就使用 continue 。
for循环中的break和continue
break举例
其实和 while 循环中的 break 一样,for 循环中的 break 也是运用于终止循环的,不管循环还需要多少次,只要 break 被执行,循环就此结束。
例如:
continue举例
如果把上面代码中的 break 直接换成 continue 呢?
这里的 continue 跳过了后面的打印,来到了 i++ 的调整部分。
由此可看出,while循环中的 continue 有可能会陷入死循环,而for循环中的 continue 不会。
do while循环中的break和continue
do while语句中的 break 和 continue 的作用和 while 几乎一样,代码如下:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
break;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
continue;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}