前面的博文中有提到do-while与for循环语句,其中的流程图中有break和continue这两个部分还没解释。
所以今天先来解释一下break与continue语句。
break 和 continue 两个关键字都被运用在循环中。
break 的作用是永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中也有所差异。
先说说 while 循环中的 break 和 continue
先拿 break 举个例子:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
结果是只打印了1、2、3、4,因为打印到5时,满足了 i ==5 ,于是运行了break,使循环终止了。
break 被执行, break 外的第一层循环就终止了。所以break可以用来终止循环。
假如把上文的 break 改为 continue ,那么程序就会陷入死循环。
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
printf("%d ", i);
i = i+1;
}
return 0;
}
从 i==5,执行了 continue 以后就直接跳过了 i = i+1 , 所以就一直 i 为5,于是程序进入了死循环。
continue 可以帮助我们跳过某一次循环 continue 后边的代码,直接到循环的判断部分,进入下一次循环的判断
如果循环的调整是在 continue 后边的话,可能会造成死循环。
而在 for 循环中,break同上,但是continue在这里就可以正常运行。
#include <stdio.h>
int main()
{
int i = 1;
for(i=1; i<=10; i++)
{
if(i == 5)
continue;
printf("%d ", i);
}
return 0;
}
在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。
当 i==5,时执行continue,跳过了printf,直接到了i++,所以不会打印5,而是直接开始到6并打印。
所以最后的结果是1、2、3、4、6、7、8、9、10,没有5
最后来说一下 goto 语句,这是一种C语言中特别的语法,goto 语句可以在同一个函数内跳转到设置好的标号处。(有点看不懂....对吧?)
举个例子:
#include <stdio.h>
int main()
{
printf("hehe\n");
goto next;
printf("haha\n");
next:
printf("跳过了haha的打印\n");
return 0;
}
到了goto,就直接到了next那里,也就跳过了printf("haha\n")
goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用
但是 goto 语句也不事一无是处,在多层循环的代码中,如果想快速跳出使用goto,就会非常的方便了。
比如一般用break打破循环,但他只能打破一层,所以想一次性跳出所有循环,就可以用goto,这就是所说的多层循环中的使用情况。
今天的学习内容到此结束,预知后事如何,且听下回分解~~