Java教程
Java标识符与关键字
Java变量
Java数据类型
Java运算符
Java控制语句
Java方法
Java面向对象
Java对象的创建和使用
Java封装
Java中static和this
Java继承
Java方法覆盖和多态
Java super
Java基础练习题

Java break语句

使用break这一个单词就可以在java语言中自成一条java语句,break语句的编写很简单,例如“break;”,那么它可以用在哪里呢?首先它可以使用在switch语句当中,用来终止switch语句的执行,这个之前我们用过,这里不再赘述,break语句重点是使用在循环语句当中,用来终止/跳出循环。例如有这样一个业务:从键盘不断的接收用户输入的整数,只要用户输入的数字在[0~100]之间,则将输入的数字累加,一旦用户输入的整数不在[0-100]的范围,则终止循环的执行,并输出计算结果。请看下面的代码:

java.util.Scanner scanner = new java.util.Scanner(System.in);
int sum = 0;
while(true){
	System.out.print("请输入[0-100]的整数:");
	int num = scanner.nextInt();
	if(num >= 0 && num <= 100){
		sum += num;
		System.out.println("累加" + num + "成功!");
	}else{
		System.out.println("不在合法范围,无法累加" + num);
		break;
	}
}
System.out.println("最终累加结果 = " + sum);

运行效果如下图所示:

图6-37:break初步使用

通过以上程序我们得知当用户输入的数字不在[0-100]范围内的时候break语句执行,while循环结束了。那么,当循环语句多层嵌套的时候break语句终止的是哪个循环呢?我们来看以下的程序:

for(int j = 1; j <= 2; j++){
	for(int i = 1; i <= 10 ; i++){
		if(i == 5){
			break;
		}
		System.out.println("i = " + i);
	}
}

运行结果如下所示:

图6-38:break终止的是哪个循环

分析以上程序,请看下图:

图6-39:循环嵌套时,break终止哪个?

通过上图的分析,可以得知break语句默认情况下只能终止离它“最近”的“一层”循环。以上的break语句则终止的是内部循环,不影响外部循环的执行。那么break语句可以用来终止指定的循环吗?请看以下代码:

first:for(int j = 1; j <= 2; j++){
	for(int i = 1; i <= 10 ; i++){
		if(i == 5){
			break first;
		}
		System.out.println("i = " + i);
	}
}

运行结果如下图所示:

图6-40:终止指定的循环

通过以上程序的测试,我们可以得知当多层循环嵌套的时候,可以给每个循环设置标识,例如:first:for...、second:for...,当某个条件成立时,想终止指定循环的话,可以这样做:break first;或者break second;,这样指定的循环就结束了。

总之,break语句出现在循环当中用来终止循环的执行。例如:运动场上的运动员跑圈儿,跑了一圈又一圈,这显然是循环机制,假设比赛要求跑10圈儿,或者20圈儿,那么当计数器等于10,或者20的时候,循环就结束了,如果中途发生意外呢,例如运动员晕倒了,那么此时在没有达到10圈儿或20圈儿的时候是不是也应该终止此循环的执行,要想让循环结束则执行break语句就可以了。