java 中的break语句和continue语句

来源:互联网 发布:unity3d 地图制作 编辑:程序博客网 时间:2024/05/18 01:56

最普通的break语句和continue语句,我想大家在学习c与c++的时候已经很熟悉了,这里也就不多说了,现在主要就是说下java里边的新加的集中重要的用法:

这里,我插一句,其实我想大家都很熟悉c里边有一个见过几次面,但是又不是经常使用的一个语句,那就是goto语句,这个语句,我想老师已经讲过了,而且应该只是只言片语就带过了,因为在很多的老师的眼里,这种语句是个大混蛋,他可以完全打乱一个程序的可读性,和一定的逻辑性。在计算机的发展史上,在19世纪汇编语言刚刚现世的时候,很多的程序员大量的使用这种语句,但是经过一场风波之后,具体的我也不大清楚,请读者咨询百度,导致了这种语句的大量减少使用,导致最后的禁用。。。

现在我就冒天下之大不韪,来为这个沉睡在计算机的发展史上的语句平反陈冤,让他再重见天日!!!

废话不多说,直接进入今天的主题,

package outPak1;import java.util.*;public class outCls1 {  public static void main(String[] args) {    int i = 0;    outer: // Can't have statements here    for(; true ;) { // infinite loop      inner: // Can't have statements here      for(; i < 10; i++) {        prt("i = " + i);        if(i == 2) {          prt("continue");          continue;        }        if(i == 3) {          prt("break");          i++; // Otherwise i never               // gets incremented.          break;        }        if(i == 7) {          prt("continue outer");          i++; // Otherwise i never               // gets incremented.          continue outer;        }        if(i == 8) {          prt("break outer");          break outer;        }        for(int k = 0; k < 5; k++) {          if(k == 3) {            prt("continue inner");            continue inner;          }        }      }    }    // Can't break or continue    // to labels here  }  static void prt(String s) {    System.out.println(s);  }} ///:~
这个代码的运行结果是

i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
i = 8
break outer
说明一下,这里有个很重要的一点,那就是如果使用Break  outer语句的时候需要注意,你使用这个语句是为了调出当前循环,那么也就是说这个“outer:”这样的语句应该写在哪里呢?应该是写在该循环的上边,当然如果当前循环的外边还有一个循环,如果你写在了外边循环的里边,当前循环的前边,那么只是调出当前循环,如果你直接写在了外边循环的前边,那么就是不仅仅跳出了里边的循环,而且直接跳出了外边的循环,continue outer语句也是有着相似的含义;请谨慎使用哦!!!

package outPak1;import java.util.*;public class outCls1 {  public static void main(String[] args) {    int i = 0,time=0;    outer: // Can't have statements here    for(; true ;) {    // infinite loop    if(time==3) {    break;    }    time++;      inner: // Can't have statements here      for(i=0; i < 10; i++) {        prt("i = " + i);        if(i == 2) {          prt("continue");          continue;        }        if(i == 3) {          prt("break");          i++; // Otherwise i never               // gets incremented.          break;        }        if(i == 7) {          prt("continue outer");          i++; // Otherwise i never               // gets incremented.          continue outer;        }        if(i == 8) {          prt("break outer");          break outer;        }        for(int k = 0; k < 5; k++) {          if(k == 3) {            prt("continue inner");            continue inner;          }        }      }    }    // Can't break or continue    // to labels here  }  static void prt(String s) {    System.out.println(s);  }} ///:~



输出结果是:

i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break

注意看下哦,这里还需要读者自己仔细体会哦。

当然这里还有一点值得提醒,break [logal]或者continue[logal],这个logal只能是出现在某一个循环的前边,当然如果出现在某一个非循环的前边,或者一个循环的前边出现了一个另外的语句,再然后这个语句的前边出现这个logal,这样是编译错误的。

大家来看个栗子:

public static void main(String[] args) {// TODO Auto-generated method stubz:o+=2;for(int i=3;i<8;i++) {if(i==4)break;if(i==6)break z;o+=i;}System.out.println(o);}
这里的break z是编译错误的,应该把加在z:后边的o+=2删了,或者换一个地方。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 树脂补牙没抛光怎么办 猪拉稀不吃食怎么办 亚麻衣服刺皮肤怎么办 自热米饭不熟怎么办 孕妇用了微波炉怎么办 蛋挞变软了怎么办 外卖炒面坨了怎么办 手机发热充电慢怎么办 饭盒盖子松了怎么办 饭盒盖子盖不住怎么办 饭盒盖子吸不住怎么办 饭盒盖子变形了怎么办 饭盒盖子凹进去怎么办 饭盒盖吸不住怎么办 饭盒微波炉加热后打不开怎么办 微波炉加热饭盒打不开怎么办 塑料饭盒加热后打不开怎么办 真空锅锅盖打不开怎么办 玻璃真空水壶打不开怎么办 保温饭盒盖子打不开怎么办 饭盒盖章松了怎么办 电压力锅卡住了怎么办 铁的饭盒打不开怎么办 微波炉饭盒盖子打不开怎么办 微波炉盖子吸住了怎么办 剩下的糯米饭怎么办 饭盒微波加热打不开怎么办 微波炉触屏不灵怎么办 微波炉旋钮坏了怎么办 微波炉蒸馒头硬怎么办 小猫两天不吃饭怎么办 减肥吃了巧乐兹怎么办 孕妇吃了点蟹籽怎么办 做寿司没有肉松怎么办 做寿司没有海苔怎么办 孩子不爱吃早餐怎么办 早上不想吃早餐怎么办 早上来不及吃早餐怎么办 早餐吃撑了怎么办 减肥吃撑了怎么办 哺乳吃爆米花了怎么办