C语言在循环执行过程中,如果发送某些突发状况,需要提前终止循环,可以使用break和continue两个关键字来提前结束循环。
break适用于永久地终止循环,一旦执行break,会直接跳出循环,继续往后执行。
continue适用于跳过本次循环(不执行continue后的语句),转而进行下一次循环。
1.while循环中的break和continue
1.1 break
举例:
#include<stdio.h> //while循环中的break和continue int main() { int i = 1; while (i <= 10) { if (i == 5) { break; //当i的值为5时,跳出循环,循环终止。 } printf("%d ", i); i++; } return 0; }
以上代码执行结果为:1 2 3 4
原因:当i的值增加到5时,执行break跳出循环,循环结束。
所以,break的作用就是永久地终止循环,一旦执行了break,break外的第一次循环就终止了。
1.2 continue
举例:
#include<stdio.h> //while循环中的break和continue int main() { int i = 1; while (i <= 10) { if (i == 5) { continue; //当i的值为5时,跳过本次循环,continue后的语句不执行。 } printf("%d ", i); i++; } return 0; }
以上代码的执行结果为:死循环
原因:当i的值增加到5时,执行continue跳过了本次循环,continue后的语句(打印及自增)不执行,i的值始终为5,程序由此陷入死循环。
所以,continue可以用来跳过某一次循环continue后面的代码,直接到循环的判断部分进行下一次的判断,如果对循环变量的调整是由continue后面的语句控制,可能会造成程序死循环。
2.for循环中的break和continue
2.1 break
举例:
#include<stdio.h> //for循环中的break和continue int main() { int i = 1; for (i = 1; i <= 10; i++) { if (i == 5) { break; } printf("%d ", i); } return 0; }
以上代码的执行结果为:1 2 3 4
原因:当i的值增加到5时,执行break跳出循环,循环结束。
2.2 continue
举例:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //for循环中的break和continue int main() { int i = 1; for (i = 1; i <= 10; i++) { if (i == 5) { continue; } printf("%d ", i); } return 0; }
以上代码的执行结果为:1 2 3 4 6 7 8 9 10
原因:当i的值增加到5时,执行continue跳过了本次循环,continue后的语句(打印)不执行,i的值继续自增并对判断部分进行判断。