在while中,break永久终止循环,而continue是跳出本次循环。
首先是break的情况
#include <stdio.h>
int main()
{
int i=0;
while (i < 10)
{
if (i == 5)
break;
printf("%d", i);
i++;
}
return 0;
}
答案是:01234
下面是continue的情况
#include <stdio.h>
int main()
{
int i=0;
while (i < 10)
{
if (i == 5)
continue;
printf("%d", i);
i++;
}
return 0;
}
结果也是01234,为什么后面不输出012346789呢是因为它跳出i=5的那次循环,就是continue是在while跳出本次循环后面的代码,因此也不会再进行执行i++,但是后面循环是死循环(注意是对while的作用而不是对if的作用)。
break在for循环中是这样的
#include<stdio.h>
int main()
{
int i = 0;
for (; i < 10; i++)
{
if (i == 5)
break;
printf("%d", i);
}
printf("\n");
return 0;
}
输出是01234
而continue则是这样
#include<stdio.h>
int main()
{
int i = 0;
for (; i < 10; i++)
{
if (i == 5)
continue;
printf("%d", i);
}
printf("\n");
return 0;
}
输出是012346789,跳过5,但是并没有进入死循环。因为continue是跳过循环后面的代码,之后回到for(;i<10;i++)中的i++所以它并不会进入死循环。
这也是continue在while和for循环的不同的地方。