制御構文とは
制御構文とは、プログラムの流れを制御するための構文です。
具体的には、条件分岐や繰り返しといった動作を制御します。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 Linqを理解すれば、C#プログラミングの世界が変わる 第1版
条件分岐: if文
条件分岐の一つであるif文を見てみましょう。
if文は、指定した条件が真であるかどうかをチェックし、真の場合はその内部の処理を行います。
1 2 3 4 5 6 |
int num = 10; if (num > 0) { Console.WriteLine("Number is positive."); } |
出力結果
Number is positive.
条件分岐: if-else文
次に、if-else文を見てみましょう。
if-else文は、if文の条件が偽である場合にelse内の処理を行います。
1 2 3 4 5 6 7 8 9 10 |
int num = -10; if (num > 0) { Console.WriteLine("Number is positive."); } else { Console.WriteLine("Number is not positive."); } |
出力結果
Number is not positive.
繰り返し: for文
繰り返し処理の一つであるfor文について見てみましょう。
for文は、指定した回数だけ処理を繰り返します。
1 2 3 4 |
for (int i = 0; i < 5; i++) { Console.WriteLine(i); } |
出力結果
0
1
2
3
4
繰り返し: while文
繰り返し処理の一つであるwhile文について見てみましょう。
while文は、指定した条件が真である間、処理を繰り返します。
1 2 3 4 5 6 7 |
int i = 0; while (i < 5) { Console.WriteLine(i); i++; } |
出力結果
0
1
2
3
4
繰り返し: do-while文
繰り返し処理の一つであるdo-while文について見てみましょう。
do-while文は、最低一回は処理を行い、その後条件が真である間、処理を繰り返します。
1 2 3 4 5 6 7 |
int i = 0; do { Console.WriteLine(i); i++; } while (i < 5); |
出力結果
0
1
2
3
4
繰り返し: foreach文
繰り返し処理の一つであるforeach文について見てみましょう。
foreach文は、コレクションや配列の全ての要素に対して順に処理を行います。
1 2 3 4 5 6 |
int[] numbers = { 0, 1, 2, 3, 4 }; foreach (int number in numbers) { Console.WriteLine(number); } |
出力結果
0
1
2
3
4
ループ制御: break文
ループを制御する構文の一つであるbreak文について見てみましょう。
break文は、その位置から直近のループを抜け出します。
1 2 3 4 5 6 7 8 |
for (int i = 0; i < 5; i++) { if (i == 3) { break; } Console.WriteLine(i); } |
出力結果
0
1
2
ループ制御: continue文
ループを制御する構文の一つであるcontinue文について見てみましょう。
continue文は、その位置から直近のループの次のイテレーションにジャンプします。
1 2 3 4 5 6 7 8 |
for (int i = 0; i < 5; i++) { if (i == 3) { continue; } Console.WriteLine(i); } |
出力結果
0
1
2
4
条件分岐: switch文
条件分岐の一つであるswitch文について見てみましょう。
switch文は、与えられた値に応じて処理を分岐させることができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
int number = 3; switch (number) { case 1: Console.WriteLine("Number is 1"); break; case 2: Console.WriteLine("Number is 2"); break; case 3: Console.WriteLine("Number is 3"); break; default: Console.WriteLine("Number is not 1, 2, or 3"); break; } |
出力結果
Number is 3
条件演算子(三項演算子)
C#には、if文と同じような条件分岐を一行で書くための「条件演算子(?:)」があります。
これは「条件 ? 真の場合の値 : 偽の場合の値」という形で書きます。
1 2 3 4 5 |
int number = 5; string result = number % 2 == 0 ? "even" : "odd"; Console.WriteLine(result); |
出力結果
odd
例外処理: try-catch-finally
プログラム中に予期せぬエラーが発生することがあります。それらのエラーを「例外」と呼び、それを管理するための制御文がtry-catch-finallyです。
tryブロック内で例外が発生した場合、対応するcatchブロックが実行され、最後にfinallyブロックが必ず実行されます。
1 2 3 4 5 6 7 8 9 10 11 12 |
try { int num = int.Parse("abc"); // This will cause an exception } catch (FormatException e) { Console.WriteLine("An error occurred: " + e.Message); } finally { Console.WriteLine("This line is always executed"); } |
出力結果
An error occurred: Input string was not in a correct format.
This line is always executed
リソースの管理: using
using文は、リソース(ファイル、データベース接続など)を自動的に解放するための制御文です。
usingブロックの中で生成したリソースは、ブロックの終了とともに自動的に解放されます。
1 2 3 4 |
using (StreamWriter writer = new StreamWriter("test.txt")) { writer.WriteLine("Hello, World!"); } // writer is disposed here |
イテレーター: yield
yield文は、イテレーターと呼ばれる特殊なメソッドやgetアクセッサーで使用します。
これを用いることで、独自の列挙可能なデータを簡単に作成することができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
public static IEnumerable<int> GetNumbers() { for (int i = 0; i < 5; i++) { yield return i; } } foreach (int number in GetNumbers()) { Console.WriteLine(number); } |
出力結果
0
1
2
3
4
まとめ
C#にはさまざまな制御構文があり、それぞれに独自の役割と利点があります。
これらの制御構文を適切に使うことで、より効率的で読みやすいコードを書くことができます。
学習の初めの頃は多くの制御構文があり、混乱するかもしれませんが、一つ一つ理解していきましょう。
そして、どの制御構文をいつ使うべきかを理解することが、プログラミングスキルを向上させる大切なステップです。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!