【Javascript】 whlie文 (ループ) 理解度チェック

問1

while文で10回ループするコードを書いてください。

while文でループ回数を指定することはほぼありませんが、for文とwhile文は互いに書き換える事ができるというのは覚えておきましょう。

let i = 0;
while (i < 10) {
    console.log(i);

    // 諸々の処理後にインデックスを足す!
    i++;
}

問2

乱数を生成してその値を出力する行為を繰り返してください。ただし、0.3未満の値が出たら、それを最後としてください。

乱数はMath.random()で生成できます。

let x = Math.random();
console.log(x); // 0.9108972924486545

0.3未満ならループ終了というのは、0.3以上ならループ続行と読み替えることができます。そのため、while文のループ条件はx >= 0.3のようになります。

普通のwhile文でも良いですが、変数を用意する、かつその変数の初期化の値の都合上、どちらかというとdo-whileの方がきれいに書くことができます。

do-whileの場合
let x = 0; // 何でも良いが、0やnull、初期化なしなどが良い

do {
    x = Math.random();
    console.log(x);
} while(x >= 0.3);
whileの場合
let x = 1; // 0.3以上の値

while (x >= 0.3) {
    x = Math.random();
    console.log(x);
}

問3 コラッツ予想

最初に適当な値を設定して、偶数なら2で割り、奇数なら3倍して1足すという行為繰り返し、1になったら終了してください。

同時に、それを行うたびにその値を出力してください。

例えば、最初が3の場合、

10
5
16
8
4
2
1

のようになります。

これはコラッツ予想です。この行為を繰り返すと、どんな値を入れても最終的に1になるという予想です。本当にそうかは、まだ証明されていません。

let x = 100; // 適当な値

while(x != 1) {
    // 偶数
    if (x % 2 == 0) {
        x /= 2;
    }
    else { // 奇数
        x = x * 3 + 1;
    }
    console.log(x);
}

問4 無限ループ

無限ループする処理を書いてください。

ループの条件は、条件として入れた式の結果が0かどうかで決まります。つまり、0以外の固定の値を入れると、何度やっても条件をみたすので無限ループにできます。

入れる値は1trueが一般的です。

while (1) {
    // ...
}

// または
while (true) {
    // ...
}
while thumb

役に立ったらシェアしよう!