再探JAVA语言基础——break和continue的用法
Vivian 2018-07-03 来源 : 阅读 726 评论 0

摘要:本文主要向大家介绍了再探JAVA语言基础——break和continue的用法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了再探JAVA语言基础——break和continue的用法,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

break

break可用于循环和switch...case...语句中。

用于switch...case中:

执行完满足case条件的内容内后结束switch,不执行下面的语句。

eg:

[java] view plain copy

1. public static void breakSwitch1() {  

2.         int n = 1;  

3.         switch (n) {  

4.         case 1:  

5.             System.out.println("this is one.");  

6.             break;  

7.         case 2:  

8.             System.out.println("this is two.");  

9.             break;  

10.         default:  

11.             System.out.println("Others.");  

12.         }  

13.     }  

结果:

this is one.

eg2:

[java] view plain copy

1. public static void breakSwitch2() {  

2.         int n = 1;  

3.         switch (n) {  

4.         case 1:  

5.             System.out.println("this is one.");  

6.             //break;  

7.         case 2:  

8.             System.out.println("this is two.");  

9.             break;  

10.         default:  

11.             System.out.println("Others.");  

12.         }  

13. }  

结果:

this is one.

this is two.

 

用于循环中

break;  结束本层循环。

eg:

[java] view plain copy

1. public static void breakTest1() {  

2.         System.out.println("begin to circulating.");  

3.         for (int i = 0; i < 5; i++) {  

4.             for (int j = 0; j < 5; j++) {  

5.                 if (i == 2 && j==3) {  

6.                     System.out.println("break is executed!");  

7.                     break;  

8.                 }  

9.                 System.out.print(i + "*" + j + "=" + i * j + "    ");  

10.             }  

11.             System.out.println();  

12.         }  

13.     }  


结果:

begin to circulating.

0*0=0    0*1=0    0*2=0    0*3=0    0*4=0    

1*0=0    1*1=1    1*2=2    1*3=3    1*4=4    

2*0=0    2*1=2    2*2=4    break is executed!

 

3*0=0    3*1=3    3*2=6    3*3=9    3*4=12    

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

 

break [flag];  结束带有[flag]标记层到本层的所有循环。

eg1:

[java] view plain copy

1. public static void breakTest2() {  

2.         System.out.println("begin to circulating.");  

3.         loop:for (int i = 0; i < 5; i++) {  

4.             for (int j = 0; j < 5; j++) {  

5.                 if (i == 2 && j==3) {  

6.                     System.out.println("break is executed!");  

7.                     break loop;  

8.                 }  

9.                 System.out.print(i + "*" + j + "=" + i * j + "    ");  

10.             }  

11.             System.out.println();  

12.         }  

13.     }  


结果:

begin to circulating.

0*0=0    0*1=0    0*2=0    0*3=0    0*4=0    

1*0=0    1*1=1    1*2=2    1*3=3    1*4=4    

2*0=0    2*1=2    2*2=4    break is executed!

 

 

eg2:

[java] view plain copy

1. public static void breakTest3() {  

2.         loop: for (int i = 0; i < 5; i++) {  

3.             for (int j = 0; j < 5; j++) {  

4.                 System.out.print("level " + i + ":");  

5.                 for (int k = 0; k < 5; k++) {  

6.                     if (i == 1 && j == 2 && k == 3) {  

7.                         break loop;  

8.                     }  

9.                     System.out.print(i + "+" + j + "+" + k + "=" + i + j + k  

10.                             + "    ");  

11.                 }  

12.                 System.out.println("    ");  

13.             }  

14.             System.out.println();  

15.         }  

16.     }  


结果

level 0:0+0+0=000    0+0+1=001    0+0+2=002    0+0+3=003    0+0+4=004        

level 0:0+1+0=010    0+1+1=011    0+1+2=012    0+1+3=013    0+1+4=014        

level 0:0+2+0=020    0+2+1=021    0+2+2=022    0+2+3=023    0+2+4=024        

level 0:0+3+0=030    0+3+1=031    0+3+2=032    0+3+3=033    0+3+4=034        

level 0:0+4+0=040    0+4+1=041    0+4+2=042    0+4+3=043    0+4+4=044        

 

level 1:1+0+0=100    1+0+1=101    1+0+2=102    1+0+3=103    1+0+4=104        

level 1:1+1+0=110    1+1+1=111    1+1+2=112    1+1+3=113    1+1+4=114        

level 1:1+2+0=120    1+2+1=121    1+2+2=122 

 

 

continue

continue; 结束本层的本次循环。

eg1:

[java] view plain copy

1. public static void continueTest1() {  

2.         for (int i = 0; i < 10; i++) {  

3.             if (i == 6) {  

4.                 continue;  

5.             }  

6.             System.out.print(i + "    ");  

7.         }  

8.     }  


结果:

0    1    2    3    4    5    7    8    9  

eg2:

[java] view plain copy

1. public static void continueTest2() {  

2.         for (int i = 0; i < 5; i++) {  

3.             for (int j = 0; j < 5; j++) {  

4.                 if (i == 2 && j == 3) {  

5.                     continue;  

6.                 }  

7.                 System.out.print(i + "*" + j + "=" + i * j + "    ");  

8.             }  

9.             System.out.println();  

 

结果:

0*0=0    0*1=0    0*2=0    0*3=0    0*4=0    

1*0=0    1*1=1    1*2=2    1*3=3    1*4=4    

2*0=0    2*1=2    2*2=4    2*4=8    

3*0=0    3*1=3    3*2=6    3*3=9    3*4=12    

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

 

continue[flag];  结束带有[flag]标记层的本次循环,且终止[flag]层以内的层在[flag]标记层本次循环下的循环。有点绕口,也很难表述清楚,直接看例子吧:

eg1:

[java] view plain copy

1. public static void continueTest3() {  

2.         loop: for (int i = 0; i < 10; i++) {  

3.             for (int j = 0; j < 10; j++) {  

4.                 if (i == 3 && j == 4) {  

5.                     continue loop;  

6.                 }  

7.                 System.out.print(i + "*" + j + "=" + i * j + "    ");  

8.             }  

9.             System.out.println();  

10.         }  

11.     }  

 

结果

0*0=0    0*1=0    0*2=0    0*3=0    0*4=0    0*5=0    0*6=0    0*7=0    0*8=0    0*9=0    

1*0=0    1*1=1    1*2=2    1*3=3    1*4=4    1*5=5    1*6=6    1*7=7    1*8=8    1*9=9    

2*0=0    2*1=2    2*2=4    2*3=6    2*4=8    2*5=10    2*6=12    2*7=14    2*8=16    2*9=18    

3*0=0    3*1=3    3*2=6    3*3=9    4*0=0    4*1=4    4*2=8    4*3=12    4*4=16    4*5=20    4*6=24    4*7=28    4*8=32    4*9=36    

5*0=0    5*1=5    5*2=10    5*3=15    5*4=20    5*5=25    5*6=30    5*7=35    5*8=40    5*9=45    

6*0=0    6*1=6    6*2=12    6*3=18    6*4=24    6*5=30    6*6=36    6*7=42    6*8=48    6*9=54    

7*0=0    7*1=7    7*2=14    7*3=21    7*4=28    7*5=35    7*6=42    7*7=49    7*8=56    7*9=63    

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

9*0=0    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

 

eg2:

[java] view plain copy

1. public static void continueTest4() {  

2.         loop: for (int i = 0; i < 5; i++) {  

3.             for (int j = 0; j < 5; j++) {  

4.                 System.out.print("level " + i + ":");  

5.                 for (int k = 0; k < 5; k++) {  

6.                     if (i == 1 && j == 2 && k == 3) {  

7.                         continue loop;  

8.                     }  

9.                     System.out.print(i + "+" + j + "+" + k + "=" + i + j + k  

10.                             + "    ");  

11.                 }  

12.                 System.out.println("    ");  

13.             }  

14.             System.out.println();  

15.         }  

16.     }  

结果:

level 0:0+0+0=000    0+0+1=001    0+0+2=002    0+0+3=003    0+0+4=004        

level 0:0+1+0=010    0+1+1=011    0+1+2=012    0+1+3=013    0+1+4=014        

level 0:0+2+0=020    0+2+1=021    0+2+2=022    0+2+3=023    0+2+4=024        

level 0:0+3+0=030    0+3+1=031    0+3+2=032    0+3+3=033    0+3+4=034        

level 0:0+4+0=040    0+4+1=041    0+4+2=042    0+4+3=043    0+4+4=044        

 

level 1:1+0+0=100    1+0+1=101    1+0+2=102    1+0+3=103    1+0+4=104        

level 1:1+1+0=110    1+1+1=111    1+1+2=112    1+1+3=113    1+1+4=114        

level 1:1+2+0=120    1+2+1=121    1+2+2=122    level 2:2+0+0=200    2+0+1=201    2+0+2=202    2+0+3=203    2+0+4=204        

level 2:2+1+0=210    2+1+1=211    2+1+2=212    2+1+3=213    2+1+4=214        

level 2:2+2+0=220    2+2+1=221    2+2+2=222    2+2+3=223    2+2+4=224        

level 2:2+3+0=230    2+3+1=231    2+3+2=232    2+3+3=233    2+3+4=234        

level 2:2+4+0=240    2+4+1=241    2+4+2=242    2+4+3=243    2+4+4=244        

 

level 3:3+0+0=300    3+0+1=301    3+0+2=302    3+0+3=303    3+0+4=304        

level 3:3+1+0=310    3+1+1=311    3+1+2=312    3+1+3=313    3+1+4=314        

level 3:3+2+0=320    3+2+1=321    3+2+2=322    3+2+3=323    3+2+4=324        

level 3:3+3+0=330    3+3+1=331    3+3+2=332    3+3+3=333    3+3+4=334        

level 3:3+4+0=340    3+4+1=341    3+4+2=342    3+4+3=343    3+4+4=344        

 

level 4:4+0+0=400    4+0+1=401    4+0+2=402    4+0+3=403    4+0+4=404        

level 4:4+1+0=410    4+1+1=411    4+1+2=412    4+1+3=413    4+1+4=414        

level 4:4+2+0=420    4+2+1=421    4+2+2=422    4+2+3=423    4+2+4=424        

level 4:4+3+0=430    4+3+1=431    4+3+2=432    4+3+3=433    4+3+4=434        

level 4:4+4+0=440    4+4+1=441    4+4+2=442    4+4+3=443    4+4+4=444

 

PS

突然记得我以前用C语言写过类似的程序,并传到了百度库中。后来找来看了一下,发现写的好简单,但当时硬是写了大半天,而且写完之后还特别高兴,觉得这就是我的杰作,并传到了百度文库中……那时是刚上大学,在读大一刚入门的时候写的。程序员就是这样,总是沉醉于自己的作品之中,那怕是很简单,只要是在进步,把自己不会的东西写出来了,就特别高兴,这也是我们不断努力的动力啊!

有几个例子还是挺有意思的,拿出来秀一下:

例1:输入一批考试分数,用-1作为结束标志,若输入大于100,\n则提示重新输入。然后计算最高分、最低分和平均值。

[cpp] view plain copy

1. #include<stdio.h>  

2. void main()  

3. {  

4.     int mark,n=0,sum=0,max=0,min=100;  

5.     float average;  

6.   for(;;)  

7.     {  

8.         scanf("%d",&mark);                                         //输入学生成绩  

9.         if(mark>100)                          //如果输入的成绩大于100,则重新输入  

10.         {  

11.             printf("Please reinput:\n");  

12.             continue;                                 //结束本次循环,返回for循环  

13.         }  

14.         if(mark==-1)                                     //-1表示输入学生成绩结束  

15.         break;                                         //终止整个循环,跳出循环体  

16.         n++;  

17.         sum=sum+mark;  

18.         if(mark>max)  max=mark;                             //max存放最大的成绩  

19.         if(mark<min)  min=mark;                              //min存放最小的成绩  

20.     }  

21.    average=(float)sum/n;   

22.              //“(float)sum”是强制型类型变换,使average的值一定为实数  

23.     printf("max=%d,min=%d,average=%f\n",max,min,average);  

24. }  

 

例2:计算半径从1到20时圆的面积,直到面积大于200为止。

[cpp] view plain copy

1. #include<stdio.h>  

2. #define PI 3.14159265  

3. void main()  

4. {  

5.     int r;  

6.     float s;  

7.     for(r=1;r<=20;r++)  

8.     {  

9.     s=PI*r*r;  

10.     if(s>200) break;  

11.     printf("r=%d,s=%.2f\n",r,s);  

12.     }  

13. }  

 

例3:输出50到150之间不能被5整除的整数。

[java] view plain copy

1. #include<stdio.h>  

2. void main()  

3. {  

4.    int i;  

5.    for(i=50;i<=150;i++)  

6.    {  

7.     if(i%5==0)  

8.     {  

9.         printf("\n");  //使输出的显示每五个数换一行。  

10.         continue;  

11.     }  

12.     printf("%5d",i);  

13.    }  

14.    printf("\n");  

15. }  

以上就是职坐标整理发布关于JAVA的介绍,先祝大家对它有了一定的了解吧,了解更多内容,请关注职坐标编程语言JAVA频道!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程