Ответ зависит от того, нужен ли вам код так же быстро, как это было в Java.
Если вы просто хотите, чтобы это работало, вы можете использовать:
for (i <- 10 until 0 by -2) println(i);
(где until
означает , опустите окончательную запись , а to
означает , включите окончательную запись , как если бы вы использовали >
или >=
).
Однако для этого потребуются некоторые скромные издержки; цикл for
является более общей конструкцией в Scala, чем в Java, и хотя он может быть в принципе оптимизирован, на практике его пока нет (не в ядре дистрибутива до 2.9; плагин ScalaCL, вероятно, оптимизирует его для вас) Однако).
Для печати печать займет намного дольше, чем зацикливание, так что все в порядке. Но в узком цикле, который, как вы знаете, является узким местом в производительности, вместо этого вам нужно будет использовать циклы while:
var i = 10
while (i > 0) {
println(i)
i -= 2
}