42

Java でこれに相当するように、ループを 2 ずつインクリメントするにはどうすればよいですか。

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

今Scalaで私は持っています:

for (a <- 0 to max)

事実maxは常に偶数だからです。各ループでカウンターを 2 にインクリメントする方法がわかりません。

4

6 に答える 6

77

試すfor (a <- 0 until max by 2)

于 2013-07-22T15:26:56.110 に答える
22

と の違いに注意してtoくださいuntil。厳密i < maxにあなたが望むまで。

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
于 2013-07-22T15:26:57.723 に答える
2

もちろん

(0 until max by 2)  foreach {...}

十分であろう。

于 2016-10-23T11:24:57.910 に答える
1

驚くほど簡単:

scala> for (a <- 0 until 10 by 2) yield a
// Vector(0, 2, 4, 6, 8, 10)
于 2013-07-22T15:27:38.303 に答える
1
for (a <- 0 to max by 2) yield a
于 2013-07-22T15:30:23.897 に答える