Java学习篇八——break语句

写在前面:本人是借助两本参考书自学的,其中部分例子和语句均是来自参考书。第一本:《Java 编程指南》,[美] Budi Kurniawan 著,闫斌 贺莲 译。第二本:《第一行代码 Java 视频讲解版》,李兴华 马云涛 著

break语句有两种情况:

1、break

break 语句用来结束其所在的最内层的封闭的do、while、for或者switch语句,在其他地方使用break 会产生编译错误。
简单例子1(while):

public class firstestbre1 {
	public  static  void  main(String[]  args)  {
		 int x = 0;
         while (3 < 5 ) {    // 3 < 5 恒为true,故不会自行结束循环
           System.out.println(x);
           x ++;
           if ( x >= 3 )  {   // 设定循环结束条件
        	   break;    //当 x >= 3 时,结束while循环
           }
         }
	}
}

运行结果为:

0
1
2

注意:上述代码中 x ++放在 if 语句前和放在 if 语句后输出不同,放在 if 语句后,“ 3 ” 也会被输出。

例子2(for):

public class firstestbre2 {
	public  static  void  main(String[]  args)  {
		int x = 21;
		for  (  ;  x < 25 ; x ++ )  {
			for(int y = 1  ;  y < 4 ; y ++ )  {
			    if  (  x  <=  23)  {
			    	System.out.println(x + "+" +y );	
			    	break;
			    }
			}
			break;
		}
	}
}

两个 break 语句使得两个 for 语句均只循环一次,运行结果为:

21+1

当删除第8行break语句、保留第11行break语句时,第一个for 语句是break所在的最内层语句,故第一个 for 语句只能循环一次,第二个 for 语句可以正常循环三次,运行结果是:

21+1
21+2
21+3

当保留第8行break语句、删除第11行break语句时,第二个for 语句是break所在的最内层语句,故第二个 for 语句只能循环一次,第一个 for 语句可以循环三次,运行结果是:

21+1
22+1
23+1

当同时删除第8行和第11行break语句语句时,两个 for 语句都可以正常循环三次,运行结果是:

21+1
21+2
21+3
22+1
22+2
22+3
23+1
23+2
23+3
2、break + 标签

标签的作用是标记语句块,“ break + 标签 ”代表跳出标签所代表的语句块,由于break只能在do、while、for和switch语句中使用,故break后跟的标签必须是标记这些语句块的,不然会出错,先介绍简单例子:

public class firstest {
    public static void main(String[] args) {
        //    输出个位数相加和为15的组合
    	label_dem01:    //标记第一个 for 语句    	
        for (int i = 0; i < 10; i++) {        	
        	label_dem02:  //标记第二个 for 语句            	
            for (int k = 0; k < 10; k++) {          
            	if (k + i == 15) {                   //如果相加为15,则输出       	                   	
                    System.out.println(i + "+" + k);      //输出当前 i 和 k 的值          	
                    break label_dem01;                 //返回第一个 for 语句
                }
            }
        }
    }
}

这段代码是输出个位数相加和为 15 的组合,“ break + 标签 ”决定了当出现符合条件的组合时结束标签标记的循环。
上述代码第十行,label_dem01标签标记了第一个for语句,即跳出最外层循环,故输出结果为:

6+9

当第十行标签改为label_dem02,即标记了第二个 for语句时,

public class firstest {
    public static void main(String[] args) {
        //    输出个位数相加和为15的组合
    	label_dem01:    //标记第一个 for 语句    	
        for (int i = 0; i < 10; i++) {        	
        	label_dem02:  //标记第二个 for 语句            	
            for (int k = 0; k < 10; k++) {          
            	if (k + i == 15) {                   //判断条件       	                   	
                    System.out.println(i + "+" + k);      //输出当前 i 和 k 的值          	
                    break label_dem02;                 //返回第一个 for 语句
                }
            }
        }
    }
}

只跳出内层循环,外层循环仍可继续,故输出结果为:

6+9
7+8
8+7
9+6
切记:标签后必须立即跟do、while、for、witch语句,不然标签不能标记这些语句。
例如下面这两张图片:在这里插入图片描述在这里插入图片描述back1 标签并没有立即跟 for 语句,故 第13行 “ break + back1 ”出错;标签 back2 后面立即跟了 for 语句,故 “ break + back2 ”不会出错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值