如果你想要循序取出某個序列,例如陣列,則可以使用for運算式,例如,將使用者提供的命令列引數逐一取出:
for(arg <- args) {
println(arg)
}
一個執行的範例如下:
>scala ForDemo.scala This is for example
This
is
for
example
This
is
for
example
args是個字串陣列,for括號中的「arg<-args」是一個產生器(Generator)語法,它會迭代整個陣列,每一次取出陣列中一個元素並設定給arg,要注意的是,雖然沒有明確寫出,不過arg事實上是val所宣告的變數,你不可以在for運算式本體中改變arg的參考。雖然沒有必要,不過你要寫明arg是個val也是可以的:
for(val arg <- args) {
println(arg)
}
在for運算式中也可以有for運算式,例如以下是個九九乘法表的顯示範例:
for(j <- 1 to 9) {
for(i <- 2 to 9) {
printf("%d*%d=%2d ",i, j, i * j)
}
println()
}
執行結果:
2*1= 2 3*1= 3 4*1= 4 5*1= 5 6*1= 6 7*1= 7 8*1= 8 9*1= 9 2*2= 4 3*2= 6 4*2= 8 5*2=10 6*2=12 7*2=14 8*2=16 9*2=18 2*3= 6 3*3= 9 4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=27 2*4= 8 3*4=12 4*4=16 5*4=20 6*4=24 7*4=28 8*4=32 9*4=36 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 7*6=42 8*6=48 9*6=54 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 8*7=56 9*7=63 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 9*8=72 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 |