大家好,我对scala很陌生,在看到do..while语法之后,如下所示:
do{
<action>
}while(condition)
我被要求执行这个练习,它包括预测包含do..while循环的程序的输出。
var set = Set(1)
do {
set = set + (set.max + 1)
} while (set.sum < 32)
println(set.size)
执行后,我得到以下错误:
end of statement expected but 'do' found
do {
我知道可以将这个循环转换为while
(这甚至是理想的),但是我想知道do..while
循环在scala中是否仍然工作,如果是的话,这是语法错误吗(因为我在网上搜索,但是我发现了相同的语法,没有提到这个错误)?如果没有,是否有不再支持循环的版本?
发布于 2022-11-11 18:08:49
您仍然可以在Scala 2.13.10中使用do-while
https://scastie.scala-lang.org/DmytroMitin/JcGnZS3DRle3jXIUiwkb0A
在Scala 3中,可以使用面向表达式的Scala (即最后一个表达式是从块返回的表达式)编写do-但同时使用do-do方式。
while ({
set = set + (set.max + 1)
set.sum < 32
}) {}
https://scastie.scala-lang.org/DmytroMitin/JcGnZS3DRle3jXIUiwkb0A/2
https://docs.scala-lang.org/scala3/reference/dropped-features/do-while.html
https://stackoverflow.com/questions/74406251
复制相似问题