先说break
在for循环中,我们用下面这串代码作例
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i < 6; i++)
{
printf("%d ", i);
if(3==i)
break;
}
return 0;
}
对于for循环,for后面的括号就是(初始值;判断;调整)
所以break跳出循环后,不再继续打印(注意:break代表跳出循环,而不是跳出程序)
break在while循环中,其实和for循环没有太大差别
break在while循环中代表永久中止循环
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 6)
{
if (3 == i)
break;
printf("%d ", i);
i++;
}
return 0;
}
按照程序,打印出来是1,2
但是对于continue,两者就有一些差异
如果把刚刚在while循环中的break换成continue
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 6)
{
if (3 == i)
continue;
printf("%d ", i);
i++;
}
return 0;
}
打印结果如下
这是由于i=3的时候遇到了continue,在while循环中,continue代表跳出本次循环continue后面的内容,继续下次循环。而下次循环仍是i=3遇到continue跳过,导致程序进入死循环。
而对于for循环
#include<stdio.h>
int main()
{
int i = 0;
for (i = 1; i < 6; i++)
{
if (3 == i)
continue;
printf("%d ", i);
}
return 0;
}
continue在for循环中代表跳出循环到调整语句,也就是代表跳至for后面的第三个语句i++,这样就不会出现while循环中死循环的情况。
打印结果跳过了“3”。
综上,在使用continue时,for循环不会出现while那样的死循环情况,有一定的优势。理解两者之间的区别还需大家对照代码细细品味。