使用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语句就可以了。