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

#navi(マニュアル/基本)

*繰り返し [#p104ae3f]



#contents

*for [#xba05f84]
for文は
#code(aya,nooutline,nolink,nonumber){{
for 初期条件; 終了条件; 各ループの最後に実行される処理 {
...
}
}}
のように書きます。
たとえば10回ループさせたい場合は

#code(aya,nooutline,nolink,nonumber){{
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文は
#code(aya,nooutline,nolink,nonumber){{
for _i = 0 ; _i < 10 ; _i = _i++{
 _i+"回目\n"
}
}}
と書いても構いません。

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

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

と条件式を()でくくるとエラーとなるので注意してください。
のように条件式を()でくくるとエラーとなるので注意してください。
*while [#l78d197c]
for文のほかにwhile文を使ってもループを書けます。
while ループ終了条件 {
...
}
のように書きます。

前述のfor文は
#code(aya,nooutline,nolink,nonumber){{

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

のように書けます。
以下のようにwhile文の判定式を常に正とすると無限ループになり、処理が終わらなくなります。
#code(aya,nooutline,nolink,nonumber){{
while 1 == 1 {
...
}
}}
1 == 1は恒等式で常に成立するので無限ループになります。またYAYAではbool値(真偽値)は数値の0か0でないかで判定されるので
#code(aya,nooutline,nolink,nonumber){{
while 1 {
...
}
}}
も無限ループになります。
* breakについて [#j60dd51a]
for文、while文の途中でループを抜け出したいときはbreakを使います。
たとえば
#code(aya,nooutline,nolink,nonumber){{
_i = 0
while 1 {
 if (_i >= 10){
  break
 }
 _i+"回目\n"
 _i++
}
}}
この処理は、while文の条件式が常に真なので無限ループに見えますが、while文の中で"_iが10以上になったらbreak"の処理が入っているので、前述の10回ループする文と同値の処理になります。
// ** continue

#navi(マニュアル/基本)