ネストしたループ
CoddyのC#ジャーニー「基礎」セクションの一部 — レッスン 46/69。
入れ子になったループ(ネストされたループ)とは、単に別のループの中にあるループのことです。内側のループは、外側のループの1回の反復ごとに、そのすべての反復を完了します。
これの良い例えは時計です。1時間(外側のループ)ごとに、分針(内側のループ)は60分のサイクルを完全に一周しなければなりません。
入れ子になったループの例:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
Console.WriteLine(x + " " + y);
}
}
// 次のように出力されます:
// 0 0
// 0 1
// 1 0
// 1 1外側のループ (x) は2回実行され、その各回について、内側のループ (y) も2回実行されます。その結果、合計4行の出力が得られます。
上の例では、Console.WriteLine() は各結果を新しい行に表示します。
改行せずに表示したい場合は、代わりに Console.Write() を使用します:
Console.Write("Hello ");
Console.Write("World");
// 出力: Hello Worldどちらのメソッドも便利です。Console.WriteLine() は最後に改行を追加し、一方で Console.Write() はカーソルを同じ行に保持します。
チャレンジ
初心者指定された幅と高さでアスタリスク (*) の長方形を出力するプログラムを作成してください。
入力: 2つの整数: width と height
例えば:
もし width = 5 かつ height = 3 なら、出力は以下のようになります:
*****
*****
*****もし width = 4 かつ height = 6 なら、出力は以下のようになります:
****
****
****
****
****
****チートシート
入れ子になったループ(ネストされたループ)とは、別のループの中にあるループのことです。内側のループは、外側のループの各反復(イテレーション)ごとに、すべての反復を完了します。
入れ子になったループの例:
for (int x = 0; x < 2; x++) {
for (int y = 0; y < 2; y++) {
Console.WriteLine(x + " " + y);
}
}
// 出力:
// 0 0
// 0 1
// 1 0
// 1 1外側のループは2回実行され、各反復において、内側のループは完全に2回実行されます。
出力の表示:
Console.WriteLine() は値を表示し、新しい行に移動します。
Console.Write() は新しい行に移動せずに値を表示するため、次の出力は同じ行に続きます。
自分で試してみよう
using System;
public class Program {
public static void Main(string[] args) {
int width = int.Parse(Console.ReadLine());
int height = int.Parse(Console.ReadLine());
// 以下にコードを記述してください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。