コンテンツにスキップ

繰り返し

for ループ

for 文は次のように書く。

for 初期条件 ; 終了条件 ; 各ループの最後に実行される処理
{
  ...
}

たとえば 10 回ループさせたい場合は

for _i = 0 ; _i < 10 ; _i = _i + 1
{
  _i + "回目\n"
}

とする。0 回目、1 回目、…、9 回目が改行しながら出力される。各ループの最後の処理(_i = _i + 1)は、そのループの処理、つまり _i + "回目\n" が出力された後に実行されることに注意。

この例では "9回目\n" が出力された後、_i が +1 されて 10 になり、判定条件が偽になるためループが終了する。0 から 9 で合計 10 回のループになる。

ループ文でよく使う演算子として ++, --, +=, -= などがある。

演算子 意味
a++ a = a+1
a-- a = a-1
a+=b a = a+b
a-=b a = a-b

従って、上の for 文は次のように書いてもよい。

for _i = 0 ; _i < 10 ; _i++
{
  _i + "回目\n"
}

注意: 条件式はカッコで囲まない書き方が基本だが、while (_i < 10) のように囲んでもよい。for (_i = 0; _i < 10; _i++) のようにヘッダ全体を囲む書き方は Tc603-6 以降で使える(Tc603-5 まではエラー)。

while ループ

for 文のほかに while 文でもループを書ける。

while ループ継続条件
{
  ...
}

前述の for 文は次のように書ける。

_i = 0
while _i < 10
{
  _i + "回目\n"
  _i++
}

while 文の判定式を常に真にすると無限ループになり、処理が終わらなくなる。

while 1 == 1
{
  ...
}

1 == 1 は恒等式で常に成立するので無限ループになる。また YAYA では bool 値(真偽値)は数値の 0 か 0 でないかで判定されるので、次も無限ループになる。

while 1
{
  ...
}

break 文

for 文、while 文の途中でループを抜け出したいときは break を使う。

_i = 0
while 1
{
  if _i >= 10
  {
    break
  }
  _i + "回目\n"
  _i++
}

この処理は、while 文の条件式が常に真なので無限ループに見えるが、中に「_i が 10 以上になったら break」の処理が入っているので、前述の 10 回ループする文と同じ処理になる。

関連