繰り返し構文

「繰り返し構文」の編集履歴(バックアップ)一覧に戻る

繰り返し構文 - (2013/09/24 (火) 13:04:49) の編集履歴(バックアップ)







繰り返し構文概要

繰り返し構文とは、その名の通り指定したコードを何度も繰り返し実行させる命令のことです。
例えば、1から5までの数字をデバッグウインドウに出力させるコードを書くとします。
繰り返し構文を知らない人は以下のようなコードを書くでしょう。
  1. func Main()
  2. var i : int :: 0
  3.  
  4. do i :: i + 1 {*1}
  5. do Dbg@Log(i.ToStr()) {1がデバッグウインドウに出力される} {*2}
  6. do i :: i + 1
  7. do Dbg@Log(i.ToStr()) {2がデバッグウインドウに出力される}
  8. do i :: i + 1
  9. do Dbg@Log(i.ToStr()) {3がデバッグウインドウに出力される}
  10. do i :: i + 1
  11. do Dbg@Log(i.ToStr()) {4がデバッグウインドウに出力される}
  12. do i :: i + 1
  13. do Dbg@Log(i.ToStr()) {5がデバッグウインドウに出力される}
  14. end func
上記のコードを見ると、{*1}と{*2}が何度も書かれていることが分かると思います。
このコードは1から5までを出力させるコードなのでこの行数で済んでいますが、1から1000、1から10000までを出力させるコードを書く場合はどうでしょうか。
このコードのように{*1}と{*2}を何度も繰り返して書きますか?
それだと非常に効率が悪いです。
このような同じことを繰り返す部分をどうにかして短くしたい。
そこで使うのが繰り返し構文です。

Kuinにはwhile文、for文、foreach文の3つの繰り返し構文があります。
今回はその中の1つのwhile文を使って1から5までを出力するコードを記述します。
  1. func Main()
  2. var i : int :: 0
  3.  
  4. while (i < 5)
  5. do i :: i + 1
  6. do Dbg@Log(i.ToStr())
  7. end while
  8. end func
トータルで14行だったコードが8行に凝縮されました。
たった6行しか変わらないの?と思う方がいるかもしれませんが、 while (i < 5) の5の部分を1000に変えてみてください。
コードは8行のままで、1から1000までの数字を出力することができます。
(繰り返し構文を使わずに書いた場合、2000行相当のコードになります。)

繰り返し構文の利便性は分かって頂けたでしょうか。
次項ではwhile文、for文、foreach文それぞれの繰り返し構文の詳しい使い方を記述します。

補足
do i :: i + 1
は、
do i :+ 1
と表すこともできます。
:+については○○○(代入演算子の項目へのリンク)をご覧ください。

while文

説明

while文は、ある条件が満たされている間だけ指定された処理を繰り返し実行する命令のことです。
Kuinでゲームを作るときにwhile文は必ずと言っていいほど使用します。[要出典]
while文とif文を組み合わせることにより、様々なアニメーションを作ることができます。

記述方法

  1. func Main()
  2. var rx : int :: 0 {四角形のx座標}
  3. var bl : bool :: true {右に移動するか左に移動するかの判定}
  4.  
  5. while (true) {条件にtrueを指定した場合、無限ループになります}
  6. do Kuin@Act()
  7. do Draw@Rect(rx $ float, 400 $ float, 50.0, 50.0, 1.0, 1.0, 1.0, 1.0) {50*50の白い四角形を指定座標に表示}
  8.  
  9. if (rx < 0) {画面の左端に到達したとき}
  10. do bl :: true {四角形を右に移動するようにする}
  11. end if
  12. if (rx > 1550) {画面の右端に到達したとき}
  13. do bl :: false {四角形を左に移動するようにする}
  14. end if
  15.  
  16. if (bl) {判定が右のとき}
  17. do rx :+ 5 {四角形を右に5進める}
  18. end if
  19. if (!bl) {判定が左のとき}
  20. do rx :- 5 {四角形を左に5進める}
  21. end if
  22. end while
  23. end func

for文

説明


記述方法



foreach文

説明


記述方法