ifを使った、少し発展的な例
基本的な螺旋

clear
for (i<-1 to 30) {
println(i*10)
forward(i*10) ; left
}
寄り道バージョン

- 関数 circ を作り、
- 四角い螺旋の曲がり角ごとに、円(に見える図形)を
寄り道として描く
def circ(len:Int) { // 円に見える20角形
repeat(20){
forward(len); right(18)
}
}
clear
for (i<-1 to 30) {
println(i*10)
forward(i*10) ; left(45)
circ(3)
left(45)
}
条件付き寄り道バージョンその1

- circを呼び出す部分を、ifによる条件式で囲んだ
- ここでは、10 < i < 20 の範囲内に時だけ寄り道
- この i の範囲を示す不等式は上のように数学的に
書くことが(プログラミング言語では)できないので、
代わりに下のリストのように 2つの不等式を &&で
つないで表現する。
def circ(len:Int) { // この部分は変更なし
repeat(20){
forward(len); right(18)
}
}
clear
for (i<-1 to 30) {
println(i*10)
forward(i*10) ; left(45)
if(i>10 && i<20) {
circ(3)
}
left(45)
}
条件付き寄り道バージョンその2

def circ(len:Int) {
repeat(20){
forward(len); right(18)
}
}
clear
for (i<-1 to 30) {
println(i*10)
forward(i*10) ; left(45)
if(i%3 == 0) {
// この式を i%2 i%4 などに変えることもできる
circ(3)
}
left(45)
}