在 GitHub 上編輯此頁面

已移除:Do-While

語法結構

do <body> while <cond>

不再支援。建議改用以下等效的 while 迴圈

while ({ <body> ; <cond> }) ()

例如,不要使用

do
  i += 1
while (f(i) == 0)

而要使用

while
  i += 1
  f(i) == 0
do ()

使用區塊作為 while 條件的想法也為「迴圈加一半」問題提供了解決方案。以下是另一個範例

while
  val x: Int = iterator.next
  x >= 0
do print(".")

為何刪除此結構?

  • do-while 使用頻率相對較低,而且可以使用 while 忠實地表達。因此,似乎沒有必要將它作為一個獨立的語法結構。
  • 根據 新的語法規則do 用作陳述式延續,這會與其作為陳述式開頭的意義衝突。