“嗨,阿米戈!
“嗨,艾莉。”
“你已經研究過循環,這很酷。”
“我同意!現在我完全不知道沒有他們該如何生活。”
“有時候你可以不用它們……但更多時候你會需要它們。今天我們要說的是當你需要提前跳出循環時的情況。”
“你的意思是,當繼續循環的條件為真,但你還需要退出循環?”
“沒錯!有時候你聽起來好像你已經是一名程序員了。無論如何,要提前跳出一個循環,你可以使用 break 語句。看看下面的例子:
代碼 | 解釋 |
---|---|
|
該程序將從鍵盤讀取一行,直到您輸入"exit" 。 |
“我明白了。程序從控制台讀取行。如果輸入"exit"
,則isExit
變量變為true
,循環條件將為,循環將結束。”!isExit
false
”沒錯。所以,Java有一個特殊的break
語句,可以讓你簡化這樣的邏輯。如果一個break
語句在循環內部執行,那麼循環立即結束。程序會開始執行循環後面的語句。語句非常簡短:
break;
“以下是如何使用break
語句重寫我們剛剛討論的示例:
代碼 | 解釋 |
---|---|
|
該程序將從鍵盤讀取一行,直到您輸入"exit" 。 |
“也許我會記住的,我覺得它會派上用場。”
“但這break
不是唯一允許您控制循環行為的 Java 語句。Java 也有該語句continue
。如果您continue
在循環內執行語句,循環的當前迭代將提前結束。”
“迭代是什麼意思?”
“循環迭代是循環體的一次執行。continue
語句中斷循環的當前迭代,但與break
語句不同的是,它不會結束循環本身。語句也很簡短:
continue;
“那麼,continue
如果我們想‘跳過’循環的某些迭代的執行,那麼可以在循環中使用該語句?”
break
“沒錯,你明白和的區別嗎continue
?如果你需要在20個不重複的數字中找到一個7,你會用什麼樣的循環和循環中斷語句?
“嗯……我會檢查所有的數字,如果我找到 7,那麼我會執行一個break
。”
“如果您需要顯示從1
到20
除了可被 整除的數字怎麼辦7
?”
“好吧,在這裡我可能需要continue
,因為我不想退出循環。但我還是不太明白。”
“讓我告訴你如何解決這個問題。這就是這段代碼的樣子。”
代碼 | 解釋 |
---|---|
|
該程序顯示從1 到 的數字20 。如果數字可以被整除7 (餘數除以7 ) 0 ,那麼我們將跳過顯示數字。 |
“你為什麼這麼懷疑地看著我,艾莉?這裡有什麼陷阱嗎?”
“你不會被愚弄的,阿米戈!事實上,這段代碼不會正常工作。它會顯示前 6 位數字,然後i
永遠停留在數字上7
。畢竟,該continue
語句跳過了另外兩個語句:System.out.println(i)
和i++
。作為結果,一旦我們達到 value 7
,變量i
將停止變化,我們將陷入無限循環。我這樣寫代碼是為了說明一個非常常見的錯誤。”
“我們如何解決它?”
“這裡有兩個選擇:”
選項 1:i
在執行之前更改continue
,但之後i % 7
選項 2:i
始終在循環開始時遞增。但那時i
的起始值必須是0
.
選項1 | 選項 2 |
---|---|
|
|
“太好了!我會盡量不犯這個錯誤的。”
“我會記住你的承諾的!”