18 / 2766%

LESSON 18 ・ ループ

多重ループ

年を順番に表示する

for (let year = 2000; year < 2200; year += 1) {
  console.log(year);
}

forを使って2000年から2199年までを表示します。

文字列に値を埋め込む

for (let year = 2000; year < 2200; year += 1) {
  console.log(`${year}年`);
}

バッククォートで囲んだ文字列の${ }に式を書くと、文字列の中に値を埋め込めます。たとえば、yearの値が2000のとき、`${year}年`"2000年"という文字列になります。

ループを重ねる

for (let year = 2000; year < 2200; year += 1) {
  for (let month = 1; month < 13; month += 1) {
    console.log(`${year}${month}月`);
  }
}

ifだけでなく、whileforもネストすることができます。

外側にyear(年)のループ、内側にmonth(月)のループを書けば、2000年1月, 2000年2月, …, 2199年12月と順番にすべての年と月をループすることができます。

PRACTICE

演習問題

コードを自分で書いて実行してから、答えと解説を確認しましょう。

問題1

外側のループで2025年から2026年、内側のループで1月から3月を処理し、2025年1月のような形ですべての組み合わせを表示してください。

答えと解説を見る

模範解答

for (let year = 2025; year < 2027; year += 1) {
  for (let month = 1; month < 4; month += 1) {
    console.log(`${year}${month}月`);
  }
}

年を一つ取り出すたびに、内側の月のループが最初から最後まで実行されます。全部で2 * 3個の組み合わせが表示されます。

問題2

外側のループで1から2、内側のループで1から3を処理し、行1-列1のような形ですべての組み合わせを表示してください。

答えと解説を見る

模範解答

for (let row = 1; row < 3; row += 1) {
  for (let column = 1; column < 4; column += 1) {
    console.log(`行${row}-列${column}`);
  }
}

二つのループ変数を一つの文字列に埋め込みます。行と列の組み合わせが6通り表示されます。

問題3

1から3までの掛け算表を作ります。二つのループを重ね、2 * 3 = 6のような形ですべての組み合わせを表示してください。

答えと解説を見る

模範解答

for (let x = 1; x < 4; x += 1) {
  for (let y = 1; y < 4; y += 1) {
    console.log(`${x} * ${y} = ${x * y}`);
  }
}

外側の数ごとに、内側の1から3をすべて掛けます。計算式と結果は、どちらも文字列へ埋め込めます。