2013-07-22 32 views
26

Làm thế nào để tăng vòng 2 là tương đương với điều này trong Java:Tăng cho vòng 2 tại Scala

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

Ngay bây giờ tại Scala tôi có:

for (a <- 0 to max) 

Đối với một thực tế max sẽ luôn là ngay cả. Tôi không biết làm thế nào để tăng truy cập đến 2 trong mỗi vòng lặp.

Trả lời

51

Hãy thử for (a <- 0 until max by 2)

+1

Sử dụng 'to' sẽ bao gồm 'max'. – Brian

+0

@Brian, đã chỉnh sửa. – tkroman

+0

Sử dụng 'to' sẽ bao gồm giá trị tối đa không phải là câu hỏi mà bạn đặt ra. – Brian

12

Lưu ý sự khác biệt giữa tountil. Với i < max nghiêm ngặt, bạn sẽ muốn cho đến khi.

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

gì đáng ngạc nhiên dễ dàng:

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

Chắc chắn (0 đến tối đa bằng 2) foreach {...} sẽ đủ

0

Bằng cách này bạn có thể sử dụng scala cho vòng lặp giống như java.

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

Output

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 
Các vấn đề liên quan