break和continue语句
在循环执行的过程中,如果某些状况发生的时候,需要提前终⽌循环,这是非常常见的现象。C语言中提供了 break 和 continue 两个关键字,就是应用到循环中的。
- break 的作用是用于永久的终止循环,只要break被执行,就会直接跳出循环,继续往后执行。
- continue 的作用是跳过本次循环continue后边的代码,在for循环和while循环中有所差异。
8.1 while循环中的break和continue
8.1.1 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 来完成我们想要的效果。
8.1.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;
}
运行结果:
到这里我们就能分析出来, continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进行下⼀次循环的判断,如果循环的 调整 是在 continue 后边的话,可能会造成 死循环。
8.2 for循环的break和continue
8.2.1 break举例
其实和 while 循环中的 break ⼀样, for 循环中的 break 也是用于终止循环的,不管循环还需要循环多少次,只要执行到了 break ,循环就彻底终止,话不多说我们直接上代码:
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
break;
printf("%d ", i);
}
return 0;
}
运行结果:
break 的作用是永久的终止循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以使用 break 来完成。
8.2.2 continue举例
如果上⾯的代码,如果把 break 换成 continue 会是什么结果呢?
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)//i++为代码判断元素调整部分
{
if(i == 5)
continue;//这⾥continue跳过了后边的打印,直接来到了i++的调整部分
printf("%d ", i);
}
return 0;
}
运行结果:
所以在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的 调整 部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用 continue 来实现。
8.3 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 = i + 1;
}while(i<=10);
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(i == 5)
continue;
printf("%d ", i);
i = i + 1;
}while(i<=10);
return 0;
}