2013-07-22 16 views
26

Jak mogę zwiększyć pętlę o 2 za równoważne w Java:Przyrost dla pętli przez 2 w Scala

for (int i = 0; i < max; i+=2) 

Teraz w Scala mam:

for (a <- 0 to max) 

na fakt, max zawsze będzie równy. Nie wiem, jak zwiększyć licznik do 2 w każdej pętli.

Odpowiedz

51

Spróbuj for (a <- 0 until max by 2)

+1

Korzystanie 'to' obejmie' max'. – Brian

+0

@Brian, edytowane. – tkroman

+0

Użycie 'do' będzie zawierać max, co nie jest tym, o co pyta. – Brian

12

zauważyć różnicę pomiędzy to i until. Z surowym i < max będziesz chciał do.

val max = 10 

scala> for(i <- 0 until max by 2) 
    | println(i) 
0 
2 
4 
6 
8 

scala> for(i <- 0 to max by 2) 
    | println(i) 
0 
2 
4 
6 
8 
10 
1

Unsurprisingly proste:

scala> for (a <- 0 until 10 by 2) yield a 
// Vector(0, 2, 4, 6, 8, 10) 
1

pewnością (0 aż przez max 2) foreach {...} wystarczą

0

W ten sposób można używać do Scala Pętla jak java.

object Example extends App { 
    for(i <-0 to 20 by 2) { 
     println("Value of i = "+ i) 
    } 
} 

Wyjście

Value of i = 0 
Value of i = 2 
Value of i = 4 
Value of i = 6 
Value of i = 8 
Value of i = 10 
Value of i = 12 
Value of i = 14 
Value of i = 16 
Value of i = 18 
Value of i = 20