for (i<-1 to 10) { // この <- の右に 変数 i の動く範囲を書く
forward(i*10) ; left(10)
}
または
for (i<-10 to 200 by 10) { // by で 変化量を指定できる
forward(i) ; left(10) // i が変化することを実際に確かめてみて下さい
}
for i<-20 to 10
という呼び方をした場合、
def box(len:Int) {
repeat(4) {
forward(len) ; left
}
} // ここまでは関数定義
// ここから呼出
for(i<-1 to 10) {
box(i*10)
}
for(i<-10 to 1 by -1) { // i を順々に減らしていく
println(i)
box(i*10)
}
なお、上記の、by句を使った下降数列は、
以下のように、ループでのiの変化は1ずつ上昇していく形にしておき、
ループの内部で、i を使った式を使い、その中で、iを減算や除算で使うようにしても実現できる。
for( i <- 1 to 10) {
println(10-i)
}
def circles(len: Int) {
// ここで 円を描く
// そのあと 最後に 自分自身を呼ぶ(これを再帰と呼ぶ)
circles(len+5)
}
注:現段階での再帰呼び出しプログラムは、自分では停止しません。
a)で無限に続くプログラムを書いたがそれを停止させる方法(きっかけ)として
時刻、回数、その他の条件等、が考えられるが、ここでは、
時刻と回数については保留しておく
def circles(len: Int) {
if(len < 100) {
// 円を描く
circles(len+5)
}
}
このようにすると 呼び出しごとに引数が一定の変化をしていき、必ず やがて停止する