Top > マニュアル > 基本 > 繰り返し
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | バックアップ | 凍結 ]

繰り返し

for

for文は

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

のように書きます。 たとえば10回ループさせたい場合は

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

とすると0回目,2回目...9回目が改行しながら出力されます。_i++は各ループ処理の後、つまり_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++{
 _i+"回目\n"
}

と書いても構いません。

また、YAYAにおいては、for文や後述するwhile文ではif文と違い

for(_i = 0; _i < 10 ; _i++){
...
}

のように条件式を()でくくるとエラーとなるので注意してください。

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文の条件式が常に真なので無限ループに見えますが、while文の中で"_iが10以上になったらbreak"の処理が入っているので、前述の10回ループする文と同値の処理になります。