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的值继续自增并对判断部分进行判断。