C# 入れ子ループ完全ガイド:for、while、do-while を徹底解説
入れ子ループとは
別のループの中にループを配置したものを入れ子ループと呼びます。構造は以下の通りです:
外側ループ { // 外側ループの本体
内側ループ { // 内側ループの本体
}
...
}
ご覧の通り、外側ループが内側ループを囲んでいます。内側ループは外側ループの一部であり、外側ループの本体内で開始し、完結しなければなりません。
外側ループの各反復で、内側ループが完全に実行されます。
入れ子 for ループ
別の for ループの中に for ループを配置したものを入れ子 for ループと呼びます。
例:
for (int i = 0; i < 5; i++) { // 外側 for ループの本体
for (int j = 0; j < 5; j++) { // 内側 for ループの本体
}
// 外側 for ループの本体
}
例 1:入れ子 for ループ
using System;
namespace Loop {
class NestedForLoop {
public static void Main(string[] args) {
int outerLoop = 0, innerLoop = 0;
for (int i = 1; i <= 5; i++) {
outerLoop++;
for (int j = 1; j <= 5; j++) {
innerLoop++;
}
}
Console.WriteLine("外側ループ実行回数: {0} 回", outerLoop);
Console.WriteLine("内側ループ実行回数: {0} 回", innerLoop);
}
}
}
実行結果:
外側ループ実行回数: 5 回 内側ループ実行回数: 25 回
このプログラムでは、外側ループが5回実行されます。外側ループが1回実行されるたびに、内側ループが5回実行されるため、合計25回実行されます。
例 2:パターン出力する入れ子 for ループ
using System;
namespace Loop {
class NestedForLoop {
public static void Main(string[] args) {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
Console.Write(j + " ");
}
Console.WriteLine();
}
}
}
}
実行結果:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5
入れ子 while ループ
別の while ループの中に while ループを配置したものを入れ子 while ループと呼びます。
例:
while (条件1) { // 外側 while ループの本体
while (条件2) { // 内側 while ループの本体
}
// 外側 while ループの本体
}
例 3:入れ子 while ループ
using System;
namespace Loop {
class NestedWhileLoop {
public static void Main(string[] args) {
int i = 0;
while (i < 2) {
int j = 0;
while (j < 2) {
Console.Write("({0},{1}) ", i, j);
j++;
}
i++;
Console.WriteLine();
}
}
}
}
実行結果:
(0,0) (0,1) (1,0) (1,1)
入れ子 do-while ループ
別の do-while ループの中に do-while ループを配置したものを入れ子 do-while ループと呼びます。
例:
do { // 外側 do-while ループの本体
do { // 内側 do-while ループの本体
} while (条件2);
// 外側 do-while ループの本体
} while (条件1);
例 4:入れ子 do-while ループ
using System;
namespace Loop {
class NestedWhileLoop {
public static void Main(string[] args) {
int i = 0;
do {
int j = 0;
do {
Console.Write("({0},{1}) ", i, j);
j++;
} while (j < 2);
i++;
Console.WriteLine();
} while (i < 2);
}
}
}
実行結果:
(0,0) (0,1) (1,0) (1,1)
異なるタイプの内側・外側ループの組み合わせ
同じタイプのループを入れ子にする必要はありません。while ループの中に for ループを、for ループの中に do-while ループを配置することも可能です。
例 5:C# 入れ子ループ:異なる内側・外側ループ
using System;
namespace Loop {
class NestedLoop {
public static void Main(string[] args) {
int i = 1;
while (i <= 5) {
for (int j = 1; j <= i; j++) {
Console.Write(i + " ");
}
Console.WriteLine();
i++;
}
}
}
}
実行結果:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
上記プログラムでは、while ループの中に for ループを配置しています。ループの中に異なるタイプのループを配置できます。
C言語
- C# コレクション完全マスター:スタック、キュー、リスト、ハッシュテーブル
- C 言語ビット演算子マスター: AND、OR、XOR、シフト、補数
- Cプログラム構造の理解:初心者向けガイド
- C++ CGIプログラミング入門:Webアプリケーション開発の基礎
- C++データ型修飾子を理解する:signed, unsigned, long, short
- C#データ型完全解説:int、double、bool、string等の使い方と実例
- C 言語の関数ポインタ: 実践例とベストプラクティス
- C#インターフェース完全解説:定義、実装例、実践的活用法
- C# foreach ループ:配列とコレクションを簡単に反復処理
- C 言語のループ完全ガイド: for、while、do-while を実例でマスター
- C++ストレージクラス完全解説:スコープ、ライフタイム、使い方