瞭解以下代碼如何工作的問題。我是斯卡拉新手,現在已經學習了2周的語言。FOR LOOP多個發生器
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
感謝
瞭解以下代碼如何工作的問題。我是斯卡拉新手,現在已經學習了2周的語言。FOR LOOP多個發生器
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
感謝
循環是從1到3
print((10 * i + j) + " ")
是相當於
val tmp = (10*i)+j //* is higher than +
print(tmp + " ")
你的代碼的結果:
For 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
這只是嵌套循環爲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) + " ")
}
}
也許在這種形式下,它更容易看到。
是啊,這幫助了很多... thankss – 2013-02-21 19:00:56
感謝我現在明白了 – 2013-02-21 19:02:25