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