1.break和continue语句
在循环过程中如果某些状况发生时需要提前终止循环,c语音中提供了break和continue两个关键字,就是应该到循环中的。
- break的作用是用于永久终止循环,只要break执行就会直接跳出循环,继续往后执行。
- continue的作用是跳过本次循环continue后边的代码,在for循环和while循环中有所差异。
1.1 while循环中的break和continue
1.1.1break举例
打印了1,2,3,4后,当i等于5的时候,循环就终止,不在打印,不在循环。
所以break的作用就是永久的终止循环,只要break被执行,break外的第一层循环就终止了。
那我们以后在循环中,想在某种情况下终止循环,则可以使用break来完成我们想要的效果。
1.1.2 continue举例
continue是继续的意思,在循环中的作用就是跳过本次循环中continue后边的代码,继续进行下一次循环的判断。
上面的代码如果把break换成continue会是怎样的结果呢?
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++;
}
return 0;
}
到这里我们就能分析出来,continue可以帮助我们跳过某一次循环continue后边的代码,直接到循环判断部分,进行下一次循环判断,如果循环的调整是在continue后边的话,可能会造成死循环。
1.2 for循环中的break和continue
1.2.1 break举例
其实和while循环中的break一样,for循环中break也是用于终止循环的,不管循环还需要循环多少次,只要执行到了break,循环就彻底终止。
break的作用是永久终止循环,未来我们在某个条件发生的时候,不想在继续循环的时候,就可以使用break来完成。
1.2.2 continue举例
上面的代码,如果把break换成continue会是怎样的结果呢?
所以在for循环中continue的作用就是跳出本次循环中continue后的代码,直接去到循环的调整部分。未来当某个条件发生的时候,本次循环无需再执行后续某些操作的时候,就可以使用continue来实现。
在这里我们也可以对比一下while循环和for循环中continue的区别:
1.3 do while循环中的break和continue
do while语句中的break和continue的作用和while的作用几乎是一模一样,大家可以自行测试体会。
2. 循环的嵌套
前面学习了三种循环while,do while,for,这三种循环往往会嵌套在一起才能更好的解决问题,就是我们所说的:嵌套循环,这了我们看一个例子。
2.1 练习
找出100~200之间的素数,并打印在屏幕上。
注:素数又称质数,只能被1和本身整除的数字
2.2 题目解析:
- 要从100~200之间找出素数,首先得有100~200之间的数,这里可以使用循环解决。
- 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产生2~i-1之间的数字,也可以使用循环解决。
- 如果2~i-1之间没有数字能整除i,则i不是素数,如果不能整除,则i是素数。
3. goto语句
c语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。
例如:
goto语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是goto语句也不是一五是处,在多层循环的代码中,如果想快速跳出使用goto就非常的方便。
for(...)
{
for(...)
{
for(...)
{
if(disaster)
goto error;
}
}
}
error:
本来for循环想提前退出得使用break,一个break只能跳出一层for循环,如果3层循环嵌套就得使用3个break才能跳出循环,所以这种情况下使用goto语句更快捷。