首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >scala中`do..while`循环的支持

scala中`do..while`循环的支持
EN

Stack Overflow用户
提问于 2022-11-11 17:37:32
回答 1查看 54关注 0票数 0

大家好,我对scala很陌生,在看到do..while语法之后,如下所示:

代码语言:javascript
运行
复制
do{
    <action>
}while(condition)

我被要求执行这个练习,它包括预测包含do..while循环的程序的输出。

代码语言:javascript
运行
复制
var set = Set(1)
do {
  set = set + (set.max + 1)
} while (set.sum < 32)
println(set.size)

执行后,我得到以下错误:

代码语言:javascript
运行
复制
end of statement expected but 'do' found
    do {

我知道可以将这个循环转换为while (这甚至是理想的),但是我想知道do..while循环在scala中是否仍然工作,如果是的话,这是语法错误吗(因为我在网上搜索,但是我发现了相同的语法,没有提到这个错误)?如果没有,是否有不再支持循环的版本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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方式。

代码语言:javascript
运行
复制
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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74406251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档