1. break
break
的作用是用于终止循环的,在while
循环中,只要有机会执行到break
,不管后续还可能有多少次循环,循环都会终止。请看下面的代码:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
break; // 当i等于5后,就执行break,循环就终止了
printf("%d ", i);
i = i + 1;
}
return 0;
}
打印了1 2 3 4后,当i等于5的时候,循环在break的地方终止,不再打印,不再循环。
所以break的作用就是永久的终止循环,只要break被执行,break外的第一层循环就终止了。
那以后我们在循环中,想在某种条件下终止循环,则可以使用break来完成我们想要的效果。
2. continue
continue
是继续的意思,在循环中的作用就是跳过本次循环中continue
后边的代码,继续执行下一次循环的判断。
上面的代码,如果把break
换成continue
会是什么结果呢?
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
continue;
// 当 i 等于5后,就执行continue,直接跳过continue后面的代码,去循环的判断的地方
// 因为这里跳过了 i = i + 1,所以i一直为5,程序陷入死循环
printf("%d ", i);
i = i + 1;
}
return 0;
}
**练习:**连续输入字符,只打印数字字符,其他字符直接跳过,不做处理。
参考代码:
#include <stdio.h>
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
if (ch < '0' || ch > '9')
continue;
putchar(ch);
}
return 0;
}
上述的代码种,ASCII码值不在’0’~'9’范围内的,使用continue跳过后续的putchar语句,不再打印。
学到这里,我们也就理解了continue可以帮助我们跳过某一次循环continue后边的代码,直接到循环的判断部分,进行下一次循环的判断。
所以未来我们在循环中,当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用continue来实现。
完