繰り返し¶
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 回ループする文と同じ処理になる。