2

以下のコードがどのように機能するかを理解するのに問題があります。私は Scala を初めて使用し、この言語を 2 週間学習しています。

for (i <- 1 to 3; j <- 1 to 3) print((10 * i + j) + " ")

それは印刷し11 12 13 21 22 23 31 32 33ます。各値を順番に割り当てますか

i = 1

j = 0

または、ループするたびに値が割り当てられますか

i = 1

j = 1

ありがとう

4

2 に答える 2

9

for のネストされたループですj。したがって、 の割り当てられた値ごとにi、 のすべての値jが繰り返されます。

for (i <- 1 to 3) {
  for (j <- 1 to 3) {
    print((10 * i + j) + " ")
  }
}

forループは に展開されるため、foreachコードは次のようにもなります。

(1 to 3).foreach { i =>
  (1 to 3).foreach { j =>
    print((10 * i + j) + " ")
  }
}

この形の方が見やすいかも。

于 2013-02-21T18:39:19.407 に答える
1

ループは1から3まで

print((10 * i + j) + " ")

に等しい

val tmp = (10*i)+j //* is higher than +
print(tmp + " ")

あなたのコードの結果:

i=1 の場合、j=1 --> 11
    i=1' j=2 --> 12
    . .
    . .
    i=2, j=1 --> 21
    . .
    i=2、j=3 --> 23
    . .
    i=3, j=3 --> 33
于 2013-02-21T18:51:12.730 に答える