解説:ifとwhile

 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