1. break和continue关键字
- break 的可以永久地跳出循环,只要break 被执行,直接就会跳出循环,若 break 执行,则break 外的第一层循环终止继续往后执行。
- continue 的作用是跳过本次循环 continue 后面的代码,continue 可帮助我们跳过某一循环continue 后面的代码,直接到循环的判断部分,进行下一次循环的判断,若循环的调整在continue 的后面,则可能会造成死循环。在 for 循环和 while 循环中有所差异。
例:
1.
2. #include <stdio.h>
3.
4. int main()
5. {
6. int i = 1;
7. while(i <= 10)
8. {
9.
10. if (i == 5)
11. {
12. continue; //当i=5时,执行continue语句,直接跳过continue后的语句,
13. // 不会执行i++语句,变量i 的值停留为5,一直满足while的判断语句
14. //程序陷入死循环
15. }
16. printf("%d ", i);
17. i++;
18. }
19. return 0;
20. }
可见:光标一直在闪烁,程序陷入了死循环。
2. for循环中的continue和break
2.1 continue举例
1. int main()
2. {
3. i = 0;
4. for(i = 1;i<10;i++)
5. if(i==5)
6. break;
7. printf("%d ",i)
8. return 0;
9. }
2.2 break举例
1. int main()
2. {
3. int i = 0;
4. for (i = 1; i < 10; i++)
5. {
6. if (i == 5)
7. break;
8. printf("%d ", i);
9. }
10. return 0;
11. }
while 循环和 for 循环中的 continue 区别:
3. 循环的嵌套
3.1 练习:
找出100~200之间的素数和合数,并打印在公屏上。
注:素数又称质数,只能被1和本身整除的数,合数则为剩下的所有数。
3.2 参考代码:
1. #include<math.h>
2. int main()
3. {
4. int i = 0;
5. for (i = 100; i <= 200; i++)
6. {
7. int j = 0;
8. int flag = 1;
9. for (j = 2; j <= sqrt(i); j++) //sqrt函数是用来求平方根的,由数学知识可知一个数的
10. //最大公因数,即为它的算数平方根,这样可以简化计算
11. //机运算的次数,提高效率。
10. {
12. if (i % j == 0)
13. {
14. flag = 0;
15. break;
16. }
17. }
18. if(flag == 1)
19. printf("%d ", i);
20. }
21. return 0;
22. }
4. goto语句
goto 语句可以实现在同一个函数内跳转到设置好的标号处。
例:
1. int main()
2. {
3. printf("hehe\n");
4. goto next; //goto 后可以是任意英文字母组合,不一定非是next
5. printf("haha\n");
6. next:
7. printf("跳过了haha的打印");
9.
10. return 0;
11. }
goto 语句如果使用不当,就会在函数内部随意跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用;但是 goto 语句也不是一无是处,在多层循环的代码中,如果想要快速跳出使用 goto 语句就非常的方便了。