for / foreach
for
カウンタを使ったループです。
OnBoot => {
let sum = 0
for (let i = 0; i < 5; i++) {
sum += i
}
湊: 合計は${sum}です。
}
for (初期化; 条件; 更新) の形で書きます。
書ける形
for の3つの部分には、次の制限があります。
- 初期化:
let 変数名 = 値の形だけ書けます。for (i = 0; ...)のようにletを付けない書き方や、初期化を空にする書き方はできません。カウンタは、このforの中だけで使える変数になります。 - 条件: 通常の式(比較や
&&など)が書けます。 - 更新: 下の表の4つの形だけ書けます。
カウンタの更新
| 書き方 | 意味 |
|---|---|
i++ | 1増やす |
i-- | 1減らす |
i += 2 | 2増やす |
i -= 2 | 2減らす |
これ以外の形は、パースエラーになります。たとえば i *= 2 や i = i + 1、save.n++(save の中の値など、単純な変数名でないもの)は書けません。
それらが必要なときは、while を使ってください。
foreach
配列やマップの要素を順番に処理します。
配列
OnBoot => {
let items = ["あ", "い", "う"]
foreach items as i, v {
湊: ${i}番目は${v}です。
}
}
i がインデックス(0始まり)、v が値です。
インデックスだけ使う場合は v を省略できます。
変数を1つだけ書くと、それはインデックス(マップの場合はキー)になり、要素の値は取れません。値も使うときは i, v のように2つ書きます。
OnBoot => {
let items = ["あ", "い", "う"]
foreach items as i {
湊: ${i}番目。
}
}
マップ
OnBoot => {
let data = {"name": "湊", "age": "17"}
foreach data as k, v {
湊: ${k}は${v}です。
}
}
k がキー、v が値です。配列と同じく、変数を1つだけ書くとキーになります。
ループの上限
無限ループを防ぐため、ループは最大2000回で自動的に停止します。