Home > Net >  Support of `do..while` Loop In scala
Support of `do..while` Loop In scala

Time:11-12

Hello everyone I am new to scala and after seeing the do..while syntax which is the following:

do{
    <action>
}while(condition)

I have been asked to perform this exercise which consists in predicting the output of a program containing the do..while loop.

var set = Set(1)
do {
  set = set   (set.max   1)
} while (set.sum < 32)
println(set.size)

After execution I get the following error:

end of statement expected but 'do' found
    do {

I know that it is possible to convert this loop to while (which is even ideal), however I would like to know if the do..while loop still works in scala if yes, is it a syntax error (Because I searched on the net but I found the same syntax and no mention of this error)? if no, is there a version from which the loop is no longer supported?

CodePudding user response:

You can still use do-while in Scala 2.13.10

https://scastie.scala-lang.org/DmytroMitin/JcGnZS3DRle3jXIUiwkb0A

In Scala 3 you can write do-while in while-do manner using Scala being expression-oriented (i.e. the last expression is what is returned from a block)

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

  • Related