2009-07-15 34 views

Antwort

10

Ja, es ist möglich. Sie haben einige Syntaxfehler aber:

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

oder auf mehreren Linien:

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

Natürlich für den gleichen Effekt gibt es: for (i <- 0 bis 10) {println (i); }, scheint die "while" Art, es zu tun, in Scala ungewöhnlich. – Calum

+4

Oder die noch prägnantere "0 bis 10 foreach println" –

2

Was Sie wollen, ist dies:

var i = 0; while (i < 10) { print(i); i += 1 }; 
4
scala> while i < 10 {print(i) i += 1} 
<console>:1: error: '(' expected but identifier found. 
     while i < 10 {print(i) i += 1} 
      ^

Wie die Fehlermeldung angezeigt, ein Es muss ein "(") folgen, da die Bedingung, nach der es sucht, in Klammern eingeschlossen sein muss. Dasselbe gilt für "wenn" und "für", für das w ja.

1

Auf der anderen Seite, Scala wird Sie nicht eine veränderbare Variable zu verwenden und während + Bedingung

Wenn Sie die Zahlen von 0 bis 9 drucken möchten, verwenden Sie einen sequence comprehension:

for (var <- range) doSomethingWith (var) 

In Ihr Fall wird sein:

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

(ja, das Beispiel sieht ziemlich albern, aber es hilft, zu einem „Scalaish“ Code für den Übergang)

6

Wie üblich, gibt es mehr als einen Weg, dies zu tun:

// 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) 
+0

+1 für den funktionalen Ansatz – adrianboimvaser

Verwandte Themen