Link Search Menu Expand Document

已删除: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 循环条件的想法也给出了“loop-and-a-half”问题的解决方案。 下面是另一个例子:

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

为什么删除这个结构?

  • do-while 的用例很罕见,并且可以使用 while 简单地表达。所以将其作为一个独立的语法结构似乎没什么意义。
  • 新的语法规则下,do 被用作语句的 continuation, 这与将其作为语句的 introduction 的含义冲突。