Можно ли написать цикл в консоли Scala? - PullRequest
0 голосов
/ 15 июля 2009

Я пытаюсь проверить это в консоли Scala (я имею в виду консоль, а не файл скрипта):

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

Это не работает. Я пробовал несколько строк, но это тоже не похоже.

Обязан ли я использовать файл сценария только для проверки простого цикла?

Ответы [ 5 ]

10 голосов
/ 15 июля 2009

Да, это возможно. У вас есть некоторые синтаксические ошибки:

var i = 0
while (i < 10) { println(i); i += 1 }

или в несколько строк:

var i = 0
while (i < 10) {
  println(i)
  i += 1
}
6 голосов
/ 16 июля 2009

Как обычно, есть несколько способов сделать это:

// 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)
4 голосов
/ 15 июля 2009
scala> while i < 10 {print(i) i += 1}
<console>:1: error: '(' expected but identifier found.
       while i < 10 {print(i) i += 1}
             ^

Как указано в сообщении об ошибке, через некоторое время должно следовать "("), поскольку условие, которое оно проверяет, должно быть заключено в круглые скобки. То же самое относится и к "if" и "for", кстати .

2 голосов
/ 15 июля 2009

То, что вы хотите, это:

var i = 0; while (i < 10) { print(i); i += 1 };
1 голос
/ 15 июля 2009

С другой стороны, Scala рекомендует вам не использовать изменяемые переменные, а пока + условие

Если вы хотите напечатать числа от 0 до 9, используйте понимание последовательности :

for (var <- range ) doSomethingWith (var)

В вашем случае будет:

for (i <- 0 to 9) print (i)

(да, пример выглядит довольно глупо, но он помогает перейти к более "скалайшскому" коду)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...