我是靠谱客的博主 优秀小猫咪,最近开发中收集的这篇文章主要介绍continue和break详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

continue和break

continue语句

循环嵌套


continue和break

      使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

      break关键字

      在switch case语句中,我们讲到了break,用它来跳出 switch 语句。

      当 break 关键字用于 while、for循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。

      使用 while循环计算1加到100的值:

#include <cstdio>
int main(){
int i=1, sum=0;
while(1){
//循环条件为死循环
sum+=i;
i++;
if(i>100) break;
}
printf("%dn", sum);
return 0;
}

运行结果:
5050

      while 循环条件为 1,是一个死循环。当执行到第100次循环的时候,计算完i++;后 i 的值为 101,此时 if 语句的条件 i> 100 成立,执行break;语句,结束循环。

      continue语句

       continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。

      来看一个例子:

#include <cstdio>
int main(){
char c = 0;
while(c!='n'){
//回车键结束循环
scanf(“%c”,&c);
if(c=='4' || c=='5'){
//按下的是数字键4或5
continue;
//跳过当次循环,进入下次循环
}
printf(“%c”,c);
}
return 0;
}

运行结果:
0123456789↙
01236789

       程序遇到while时,变量c的值为'',循环条件c!='n'成立,开始第一次循环。scanf 使程序暂停执行,等待用户输入,直到用户按下回车键才开始读取字符。

       本例我们输入的是 0123456789,当读取到4或5时,if 的条件c=='4'||c=='5'成立,就执行 continue 语句,结束当前循环,直接进入下一次循环,也就是说printf不会被执行到。而读取到其他数字时,if 的条件不成立,continue 语句不会被执行到,会执行printf就会输出读取到的字符。

       break与continue的对比:break 用来结束循环,循环语句不再有执行的机会;continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。

循环嵌套

       在C++语言中,while、do-while、for 都可以相互嵌套。所谓嵌套,就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,或者 for 里面有 while,while 里面有 if-else,这都是允许的。

       示例1:for 嵌套执行的流程。

#include <cstdio>
int main()
{
int i, j;
for(i=1; i<=4; i++){
//外层for循环
for(j=1; j<=4; j++){
//内层for循环
printf("i=%d, j=%dn", i, j);
}
printf("n");
}
return 0;
}

运行结果:
i=1, j=1
i=1, j=2
i=1, j=3
i=1, j=4

i=2, j=1
i=2, j=2
i=2, j=3
i=2, j=4

i=3, j=1
i=3, j=2
i=3, j=3
i=3, j=4

i=4, j=1
i=4, j=2
i=4, j=3
i=4, j=4

       本例是一个简单的 for循环嵌套,外层循环和内层循环交叉执行,外层 for 每执行一次,内层 for 就要执行四次。

       在C++语言中,代码是顺序、同步执行的,当前代码必须执行完毕后才能执行后面的代码。这就意味着,外层 for 每次循环时,都必须等待内层 for 循环完毕(也就是循环4次)才能进行下次循环。虽然 i 是变量,但是对于内层 for 来说,每次循环时它的值都是固定的。

示例2:输出一个4×4的整数矩阵

#include <cstdio>
int main()
{
int i, j;
for(i=1; i<=4; i++){
//外层for循环
for(j=1; j<=4; j++){
//内层for循环
printf("%4d", i*j);
}
printf("n");
}
return 0;
}

运行结果:

   1   2   3   4

   2   4   6   8

   3   6   9  12

   4   8  12  16

       外层 for 第一次循环时,i为1,内层 for 要输出四次 1*j 的值,也就是第一行数据;内层  for 循环结束后执行 printf("n"),输出换行符;接着执行外层 for 的 i++ 语句。此时外层 for 的第一次循环才算结束。

       外层 for 第二次循环时,i为2,内层 for 要输出四次 2*j 的值,也就是第二行的数据;接下来执行 printf("n") 和 i++,外层 for 的第二次循环才算结束。外层 for 第三次、第四次循环以此类推。

       可以看到,内层 for 每循环一次输出一个数据,而外层 for 每循环一次输出一行数据。

       

       示例3:输出九九乘法表

#include <cstdio>
int main(){
int i, j;
for(i=1; i<=9; i++){
//外层for循环
for(j=1; j<=i; j++){
//内层for循环
printf("%d*%d=%2d
", i, j, i*j);
}
printf("n");
}
return 0;
}

运行结果:

1*1= 1  

2*1= 2  2*2= 4  

3*1= 3  3*2= 6  3*3= 9  

4*1= 4  4*2= 8  4*3=12  4*4=16  

5*1= 5  5*2=10  5*3=15  5*4=20  5*5=25  

6*1= 6  6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  

7*1= 7  7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  

8*1= 8  8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64  

9*1= 9  9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81

       和示例2一样,内层 for 每循环一次输出一条数据,外层 for 每循环一次输出一行数据。

       需要注意的是,内层 for 的结束条件是j<=i。外层 for 每循环一次,i 的值就会变化,所以每次开始内层 for 循环时,结束条件是不一样的。具体如下:

  • 当 i=1 时,内层 for 的结束条件为 j<=1,只能循环一次,输出第一行。
  • 当 i=2 时,内层 for 的结束条件是 j<=2,循环两次,输出第二行。
  • 当 i=3 时,内层 for 的结束条件是 j<=3,循环三次,输出第三行。
  • 当 i=4、5、6... 时,以此类推。

最后

以上就是优秀小猫咪为你收集整理的continue和break详解的全部内容,希望文章能够帮你解决continue和break详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部