ZoGには、「while」はありますが、「for・・・next」がありません。
そのため、不定回数の繰り返し処理はできますが、一定回数の繰り返し処理はできません。
「if」を用いた条件式を一定回数繰り返すことで代用できます。
※数値変数がないため、加算式と条件式を用いた「while」による一定回数の繰り返し処理はできません。
x = 1
(while (x < 3)
(if (on-board? n) n add)
x = x + 1
)
(if empty? add)
→x=1とx=2で、(if (on-board? n) n add)を2回繰り返し、その後に(if empty? add)します。
①
(game
(piece
(moves
(
(if (on-board? n) n add)
(if empty? add)
)
)
)
)
※上が盤上であれば、上に進んで「add」します。
1回だけ実行します。
上が盤上でなくなれば、現在の位置が空であれば「add」します。
②
(game
(piece
(moves
(
(if (on-board? n) n add)
(if (on-board? n) n add)
(if empty? add)
)
)
)
)
※上が盤上であれば、上に進んで「add」します。
さらに、上が盤上であれば、上に進んで「add」します。
2回だけ実行を繰り返します。
上が盤上でなくなれば、現在の位置が空であれば「add」します。
③
(game
(piece
(moves
(
(while (on-board? n) n add)
(if empty? add)
)
)
)
)
※上が盤上であれば、上に進んで「add」します。
上が盤上である限り、不定回実行を繰り返します。
上が盤上でなくなれば、現在の位置が空であれば「add」します。
最終更新:2020年08月19日 08:11