简述:在循环执行的过程中,如果某些状况发⽣的时候,需要提前终止循环,这是非常常见的现象。C语言中提供了 break 和 continue 两个关键字,就是应⽤到循环中的。
• break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
• continue 的作用是跳过本次循环 continue 后边的代码,在 for 循环和 while 循环中有所差异的。
1. while循环中的break和continue
1.1 break举例
#include <stdio.h>
int main()
{
int i = 0;
while (i <= 10)
{
if (i == 5)//当i = 5时,就执行break语句,跳出循环
break;
printf("%d ", i);
i++;
}
return 0;
}
运行结果:
打印了0,1,2,3,4后,当i等于5的时候,循环在 break 的地方终止,不再打印,不再循环。所以break 的作用就是永久的终止循环,只要 break 被执行,break 外的第⼀层循环就终止了。那以后我们在循环中,想在某种条件下终止循环,则可以使用 break 来完成我们想要的效果。
1.2 continue举例
continue 是继续的意思,在循环中的作用就是跳过本次循环中 continue 后边的代码,继续进行下⼀次循环的判断。上面的代码,如果把 break 换成 continue 会是什么结果呢?
#include <stdio.h>
int main()
{
int i = 0;
while (i <= 10)
{
if (i == 5)
//当i = 5时,就执行continue语句,直接跳过continue后面的代码,去循环判断的地方
//因为跳过了 printf 和 i++ 代码,所以i一直为5,程序陷入死循环
continue;
printf("%d ", i);
i++;
}
return 0;
}
提示:这里的程序我们无法直接观察到现象,需要各位手动调试观察现象。
到这里我们就能分析出来, continue 可以帮助我们跳过某⼀次循环 continue 后边的代码,直接到循环的判断部分,进行下⼀次循环的判断,如果循环的调整是在 continue 后边的话,可能会造成死循环。
2. for循环中的break和continue
2.1 break举例
其实和 while 循环中的 break ⼀样, for 循环中的 break 也是用于终止循环的,不管循环还需要循环多少次,只要执行到了 break ,循环就彻底终止。
#include <stdio.h>
int main()
{
int i = 0;
for(i = 0;i <= 10; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
运行结果:
break 的作用是永久的终止循环,未来我们在某个条件发生的时候,不想再继续循环的时候,就可以使用 break 来完成。
2.1 continue举例
上面的代码,如果把 break 换成 continue 会是什么结果呢?
#include <stdio.h>
int main()
{
int i = 0;
for (i = 0; i <= 10; i++)
{
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
运行结果:
所以在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用continue 来实现。
在这⾥我们也可以对比⼀下 while 循环和 for 循环中 continue 的区别:
3. do while循环中的break和continue
3.1 break举例
#include <stdio.h>
int main()
{
int i = 0;
do
{
if (i == 5)
break;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
运行结果:
打印了0,1,2,3,4后,当i等于5的时候,循环在 break 的地方终止,不再打印,不再循环。
#include <stdio.h>
int main()
{
int i = 0;
do
{
if (i == 5)
//当i = 5时,就执行continue语句,直接跳过continue后面的代码,去循环判断的地方
//因为跳过了 printf 和 i++ 代码,所以i一直为5,程序陷入死循环
continue;
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
这里的 continue 跟 while 循环语句中使用效果是一样的,同样需要各位手动调试观察现象。
完