Skip to content
Playground

演習: ネストしたループ

ネストしたループを使って、1の段から5の段までの九九を出力してください。各段は1行にまとめ、値の間はタブ文字("\t")で区切ります。

出力例:

1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
ヒント

本文 2. 九九の表 と同じ構造です。外側のループの範囲を変えてください。

8-b. ネストしたループの出力予測

Section titled “8-b. ネストしたループの出力予測”

以下のコードの出力結果を予測してから実行してください。

let count = 0;
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 4; j++) {
count++;
}
}
console.log(count);
ヒント

外側のループが1周するたびに、内側のループが何回実行されるかを考えてください。

ネストしたループを使って、以下のような三角形を出力してください。

出力例:

*
**
***
****
*****
ヒント

外側のループで行数を制御し、内側のループで各行の * の個数を制御します。i 行目に *i 個並びます。

以下のコードの出力結果を予測してから実行してください。

const arr = [10, 20, 30, 40];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
console.log(arr[i] + "," + arr[j]);
}
}
ヒント

i = 0 のとき j は 1, 2, 3 と進みます。i = 1 のとき j は 2, 3 と進みます。各ペアを順に書き出してみてください。

8-e. ネストしたループの実行回数予測

Section titled “8-e. ネストしたループの実行回数予測”

以下のコードの出力結果を予測してから実行してください。

let count = 0;
for (let i = 1; i <= 4; i++) {
for (let j = i; j <= 4; j++) {
count++;
}
}
console.log(count);
ヒント

内側のループの開始位置が j = i なので、i が増えるにつれて回数が減っていきます。i = 1 のとき 4 回、i = 2 のとき 3 回、…と続きます。合計を計算してください。

ネストしたループを使って、以下のような逆三角形を出力してください。

出力例:

*****
****
***
**
*
ヒント

8-c と * の個数が逆になります。外側のループを 5 から 1 に減らしていくか、内側のループの範囲を j <= 5 - i + 1 のように変えます。