吉里吉里/tjs2解説

繰り返し for


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

繰り返しにはwhileとdo~whileを紹介しましたが、forというものもあります

for(第1節;第2節;第3節) {
    繰り返されるスクリプト
}
それぞれの節の間は;で区切ります
第1節はループに入る前に1度だけ実行されます
第2節はループさせるかどうかの条件式です。whileにはこの第2節に当たる部分しかありませんでした
第3節は繰り返されるスクリプトを実行した後に毎回実行されます

for文の動作
1.まず、第1節を実行する
2.第2節が偽ならば繰りかえされるスクリプトを実行せずにループを抜ける(3.,4.は無視される)
      真ならば繰り返されるスクリプトを実行する
3.第3節を実行する
4. 2.に戻る

第1節はループに入る時の最初だけ、第3節は繰り返されるスクリプトを実行する度に毎回実行されるという事を気をつけて下さい
また、節はそれぞれ省略する事ができます。省略するとそこでは何も実行されません。
ただし第2節を省略すると常に真となり、無限ループとなります
ただし;は必ず書いて下さい
×for()
○for(;;)
※ifなどと同じように、{}の中の文が1つだけならば{}は省略できます

// for文を使ってFizzBuzz
var i;

for(i = 0; i < 101; i = i + 1) {
    if (i % 15 == 0) {
        // iが15で割り切れたらFizzBuzzと表示
        Debug.message("FizzBuzz");
    } else if (i % 3 == 0) {
        // iが3で割り切れたらFizzと表示
        Debug.message("Fizz");
    } else if (i % 5 == 0) {
        // iが5で割り切れたらBuzzと表示
        Debug.message("Buzz");
    } else {
        // 割り切れなかったらiをそのまま表示
        Debug.message(i);
    }
}
前回の回答例を書き換えたものです
whileの代わりにforを使っています
forの第3節でi = i + 1としているので、最後にあったi = i + 1;は無くなっています


// 第1節を省略したサンプル
var i = 0;

for(; i < 101; i = i + 1) {
    if (i % 15 == 0) {
        // iが15で割り切れたらFizzBuzzと表示
        Debug.message("FizzBuzz");
    } else if (i % 3 == 0) {
        // iが3で割り切れたらFizzと表示
        Debug.message("Fizz");
    } else if (i % 5 == 0) {
        // iが5で割り切れたらBuzzと表示
        Debug.message("Buzz");
    } else {
        // 割り切れなかったらiをそのまま表示
        Debug.message(i);
    }
}
最初にiを0で初期化しているので、第1節で再び0を代入する必要はありません
よって第1節は省略することが出来ます

更新履歴

取得中です。