for文が少しだけ拡張されています。
for-inの左辺拡張
in
の左辺の変数で右辺の配列・コレクションの要素を受けられましたが、それに加えてインデックス番号と最終周かどうかのフラグを得られるようになりました。左辺に,
区切りで変数を記述することで、それぞれの変数に値を受けることができます。
// 1番目の変数に要素
// 2番目の変数にインデックス
// 3番目の変数は最後の周であればTRUE
for c, i, f in ["あ", "い", "う", "え", "お"]
print [c, i, f]
next
// [あ, 0, False]
// [い, 1, False]
// [う, 2, False]
// [え, 3, False]
// [お, 4, True]
// 要素とインデックスを得る
for c, i in ["あ", "い", "う", "え", "お"]
print [c, i]
next
// 要素と最終周フラグを得る
// インデックスの変数は省略できる
for c,, f in ["あ", "い", "う", "え", "お"]
print [c, f]
next
// 要素のみ (従来のfor-in)
for c in ["あ", "い", "う", "え", "お"]
print c
next
for-else-endfor
forループ中にbreakしなかった場合に動作するelse節が追加されました。
for i = 0 to 2
print i
else
print "実行される"
endfor
// 途中でbreakするとelse節は実行されない
for i = 0 to 2
if i = 1 then
break
endif
else
print "実行されない"
endfor
// for-inも対応
for file in getdir("C:\test", "*.uws")
if file == "hoge.uws" then
print "hoge.uwsが見つかりました"
break
endif
else
print "hoge.uwsが見つかりませんでした"
endfor