LESSON 18 ・ ループ
多重ループ
年を順番に表示する
for year in 2000..<2200 {
print(year)
}
レンジとforを使って2000年から2199年までを表示します。
文字列に値を埋め込む
for year in 2000..<2200 {
print("\(year)年")
}
文字列の中に\( )を書くと、値を埋め込めます。たとえば、yearの値が2000のとき、"\(year)年"は"2000年"という文字列になります。
ループを重ねる
for year in 2000..<2200 {
for month in 1..<13 {
print("\(year)年\(month)月")
}
}
ifだけでなく、whileやforもネストすることができます。
外側にyear(年)のループ、内側にmonth(月)のループを書けば、2000年1月, 2000年2月, …, 2199年12月と順番にすべての年と月をループすることができます。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
外側のループで2025年から2026年、内側のループで1月から3月を処理し、2025年1月のような形ですべての組み合わせを表示してください。
答えと解説を見る
模範解答
for year in 2025..<2027 {
for month in 1..<4 {
print("\(year)年\(month)月")
}
}
年を一つ取り出すたびに、内側の月のループが最初から最後まで実行されます。全部で2 * 3個の組み合わせが表示されます。
問題2
外側のループで1から2、内側のループで1から3を処理し、行1-列1のような形ですべての組み合わせを表示してください。
答えと解説を見る
模範解答
for row in 1..<3 {
for column in 1..<4 {
print("行\(row)-列\(column)")
}
}
二つのループ変数を一つの文字列に埋め込みます。行と列の組み合わせが6通り表示されます。
問題3
1から3までの掛け算表を作ります。二つのループを重ね、2 * 3 = 6のような形ですべての組み合わせを表示してください。
答えと解説を見る
模範解答
for x in 1..<4 {
for y in 1..<4 {
print("\(x) * \(y) = \(x * y)")
}
}
外側の数ごとに、内側の1から3をすべて掛けます。計算式と結果は、どちらも文字列へ埋め込めます。