java 中的break语句和continue语句

最普通的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 stub
		z:
			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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值