3. forループとif文(1)

100までの偶数をページに出力してください。

ループ中にif で偶数かどうかを判断して処理。

見やすいように5つごとに改行を挟んだ。

var num = 0;
for (i = 1; i <= 100; i++){
    if (i % 2 == 0){
        document.write(i + "&nbsp;");
        num++;
        if (num >= 5){
            document.writeln();
            num = 0;
        }
    }
}

 結果の区切りの空白は"&nbsp;"を" "で代替可能。

ただし"&nbsp;"は自動的な文章の改行がされないという違いがあるようだ。

英語等の文字列を表記する時は特に気をつけなければいけない。

また改行はwritelnではなくwrite("<br>")という形でもできたが、こちらは行頭に空白が挟まれてしまった。

どうしてこの違いが出たのかはわからない。

 

上の記述だと条件分岐や変数numがややごちゃごちゃしている印象なので修正。

こちらの方が個人的に見やすい形なのではないかと思う。

var num = 0;
for (var i = 1; i <= 100; i++){
    if ( (i % 2 == 0) && (num >= 4) ){
        document.writeln(i);
        num = 0;
    }else if (i % 2 == 0){
        document.write(i + "&nbsp;");
        num++;
    }
}

else if は何度か elseif というように続けて書いてしまっているので注意したい。