我尝试在Scala Console中测试它(我的意思是控制台不是脚本文件):
while i < 10 {print(i) i += 1}
它不起作用。我尝试了多条线,但似乎也没有。
我是否有义务使用脚本文件来测试一个简单的循环?
答案 0 :(得分:10)
是的,这是可能的。但是你有一些语法错误:
var i = 0
while (i < 10) { println(i); i += 1 }
或多行:
var i = 0
while (i < 10) {
println(i)
i += 1
}
答案 1 :(得分:6)
像往常一样,有多种方法可以做到这一点:
// join values beforehand and print the string in one go
println(0 to 9 mkString("\n"))
// using foreach
(0 to 9).foreach(println)
// using for
for(i <- 0 to 9) println(i)
答案 2 :(得分:4)
scala> while i < 10 {print(i) i += 1}
<console>:1: error: '(' expected but identifier found.
while i < 10 {print(i) i += 1}
^
如错误消息所示,一段时间之后必须跟一个“(”,因为它测试的条件必须括在括号内。顺便说一下,对于“if”和“for”也是如此
答案 3 :(得分:2)
你想要的是这个:
var i = 0; while (i < 10) { print(i); i += 1 };
答案 4 :(得分:1)
另一方面,Scala鼓励您不要使用可变变量和+条件
如果要打印0到9之间的数字,请使用sequence comprehension:
for (var <- range ) doSomethingWith (var)
在你的情况下将是:
for (i <- 0 to 9) print (i)
(是的,这个例子看起来很傻,但它有助于过渡到更“Scalaish”的代码)