2 繰り返しの方法(repeat以外の)

for構文

a) ループの中で kojoの関数を呼ぶ場合


for (i<-1 to 10) {		// この <- の右に 変数 i の動く範囲を書く
    forward(i*10) ; left(10)
}

for+by

または

for (i<-10 to 200 by 10) {	// by で 変化量を指定できる
    forward(i) ; left(10)	   // i が変化することを実際に確かめてみて下さい
}

forの動作 等差数列

b) ループの中で自作の関数を呼ぶ場合

forで0回の動作

def box(len:Int) {
    repeat(4) {
	    forward(len) ; left
	}
}   // ここまでは関数定義

// ここから呼出
for(i<-1 to 10) {
	box(i*10)
}

*) 確認のため数値を(Outputに)印字させる

for(i<-10 to 1 by -1) {   // i を順々に減らしていく
	println(i)
	box(i*10)
}

println

なお、上記の、by句を使った下降数列は、
以下のように、ループでのiの変化は1ずつ上昇していく形にしておき、
ループの内部で、i を使った式を使い、その中で、iを減算や除算で使うようにしても実現できる。

for( i <-  1 to 10) {
	println(10-i)
}

再帰

c) 関数の中でその(同じ名前の)関数自身を呼ぶ

def circles(len: Int) {
    // ここで 円を描く
    // そのあと 最後に 自分自身を呼ぶ(これを再帰と呼ぶ)
    circles(len+5)
}

再帰

Ctrl+Alt+Del 注:現段階での再帰呼び出しプログラムは、自分では停止しません。

d)条件付きで実行する再帰関数

このようにすると 呼び出しごとに引数が一定の変化をしていき、必ず やがて停止する

再帰の概念