1.break
聲明
讓我們看一下上一課的一個例子:
代碼 | 解釋 |
---|---|
|
該程序將從鍵盤讀取一行,直到您輸入"exit" 。 |
該程序從控制台讀取行,直到exit
輸入單詞。如果你輸入這個詞,則isExit
變量變為true
,循環條件為,循環結束。”!isExit
false
Java 有一個特殊的break
語句可以讓你簡化這樣的邏輯。如果break
語句在循環內執行,則循環立即結束。程序將開始執行循環後面的語句。聲明非常簡短:
break;
以下是如何使用該break
語句重寫我們剛剛討論的示例:
代碼 | 解釋 |
---|---|
|
該程序將從鍵盤讀取一行,直到您輸入"exit" 。 |
2.繼續聲明
但這break
並不是唯一允許您控制循環行為的 Java 語句。Java也有continue
聲明。continue
如果在循環內執行語句,循環的當前迭代將提前結束。
執行一次循環體稱為循環的一次迭代。該continue
語句中斷循環的當前迭代,但與該break
語句不同的是,它不會結束循環本身。聲明也很簡短:
continue;
continue
如果我們想在某些情況下“跳過”循環體的執行,該語句在循環中非常方便。
任務:我們要編寫一個程序,打印從1
到 的數字20
,但跳過可被 整除的數字7
。這就是這段代碼的樣子。
代碼 | 解釋 |
---|---|
|
該程序顯示從1 到 的數字20 。如果數字可以被整除7 (除以的餘數是7 )0 ,那麼我們就跳過顯示數字。 |
實際上,這段代碼是行不通的,因為i
它會永遠停留在數字上7
。畢竟,該continue
語句會跳過另外兩個語句:System.out.println(i)
和i++
。結果,一旦我們達到 value 7
,變量i
將停止變化,我們將陷入無限循環。
我們故意這樣寫代碼來說明這個非常常見的錯誤。我們如何解決它?
這裡有兩個選項:
選項 1:i
在執行之前更改continue
,但之後i % 7
選項 2:i
始終在循環開始時遞增。但那時i
的起始值必須是0
.
選項1 | 選項 2 |
---|---|
|
|
GO TO FULL VERSION