https://emily.shillest.net/ayaya/index.php?マニュアル/基本/繰り返し
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個のループ回数になります。
また、ループ文でよく使う演算子として++, --, +=, -=などがありますが、これは
と同じです。従って上のfor文は
for _i = 0 ; _i < 10 ; _i = _i++{ _i+"回目\n" }
と書いても構いません。
また、YAYAにおいては、for文や後述するwhile文ではif文と違い
for(_i = 0; _i < 10 ; _i++){ ... }
のように条件式を()でくくるとエラーとなるので注意してください。
for文のほかにwhile文を使ってもループを書けます。 while ループ終了条件 { ... } のように書きます。
前述のfor文は
_i = 0 while _i < 10 { _i+"回目\n" _i++ }
のように書けます。 以下のようにwhile文の判定式を常に正とすると無限ループになり、処理が終わらなくなります。
while 1 == 1 { ... }
1 == 1は恒等式で常に成立するので無限ループになります。またYAYAではbool値(真偽値)は数値の0か0でないかで判定されるので
while 1 { ... }
も無限ループになります。
for文、while文の途中でループを抜け出したいときはbreakを使います。 たとえば
_i = 0 while 1 { if (_i >= 10){ break } _i+"回目\n" _i++ }
この処理は、while文の条件式が常に真なので無限ループに見えますが、while文の中で"_iが10以上になったらbreak"の処理が入っているので、前述の10回ループする文と同値の処理になります。
Last modified on: 2017-10-19 (Thursday) 19:02:16
|