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; }
运⾏结果:1 2 3 4
break
的作⽤是永久的终⽌循环,未来我们在某个条件发⽣的时候,不想再继续循环的时候,就可以
使⽤
break
来完成。
2.continue
闲言少叙,书归正传
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;//这⾥continue跳过了后边的打印,来到了i++的调整部分
printf("%d ", i);
}
return 0; }
结果为1 2 3 4 6 7 8 9 10
所以在
for
循环中
continue
的作⽤是跳过本次循环中
continue
后的代码,直接去到循环的调
整部分。未来当某个条件发⽣的时候,本次循环⽆需再执⾏后续某些操作的时候,就可以使⽤
continue
来实现。
(补充:continue在while循环中,是跳过后面的部分,如果后面有调整部分,调整部分不执行,直接再次进入判断部分的,而在for循环中则是直接跳转到for循环后的调整部分,调整部分纸执行)
而这里do while循环与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; }
3.循环嵌套
前⾯学习了三种循环 while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决问题,就是我们所说的:循环嵌套,这⾥我们就看⼀个例⼦。
练习
找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字。
分析
1.要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
2.假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决。
3.如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
#include <stdio.h>
int main()
{
int i = 0;
//循环产⽣100~200的数字
for(i=100; i<=200; i++)
{
//判断i是否为素数
//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for(j=2; j<i; j++)
{
if(i % j == 0)
{
flag = 0;
break;}
}
if(flag == 1)
printf("%d ", i);
}
return 0; }
4.goto语句
C语⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数内跳转到设置好的标号处。 例如:
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next:
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0; }
goto
语句如果使⽤的不当,就会导致在函数内部随意乱跳转,打乱程序的执⾏流程,所以我们的建议是能不⽤尽量不去使⽤;但是 goto
语句也不是⼀⽆是处,在多层循环的代码中,如果想快速跳出使⽤ goto
就⾮常的⽅便了。
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
error:
本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出⼀层 for 循环,如果3层循环嵌套 就得使⽤3个 break 才能跳出循环,所以在这种情况下我们使⽤ goto 语句就会更加的快捷