是否可以在Scala Console中编写循环?

时间:2009-07-15 05:16:02

标签: scala

我尝试在Scala Console中测试它(我的意思是控制台不是脚本文件):

while i < 10 {print(i) i += 1}

它不起作用。我尝试了多条线,但似乎也没有。

我是否有义务使用脚本文件来测试一个简单的循环?

5 个答案:

答案 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”的代码)