文には次の2種があります。
カテゴリ | 機能 | 該当するステートメント |
---|---|---|
宣言ステートメント (Declaration statements) |
新しい変数または定数を定義する | |
式ステートメント (Expression statements) |
値を計算する | |
選択ステートメント (Selection statements) |
条件に基づいて、異なるコード セクションに分岐する | if、else、switch、case |
繰り返しステートメント (Iteration statements) |
配列などのコレクションをループしたり、条件が満たされるまでくり返し実行する | do、for、foreach、in、while |
ジャンプ ステートメント (Jump statements) |
break、continue、default、goto、return、yield | |
例外処理ステートメント (Exception handling statements) |
throw、try-catch、try-finally、try-catch-finally | |
Checked と Unchecked (Checked and unchecked) |
算術オーバーフローをチェックするかどうか Checked と Unchecked - C# リファレンス | Microsoft Learn | checked、unchecked |
await ステートメント (The await statement) |
||
yield return ステートメント (The yield return statement) |
||
fixed ステートメント (The fixed statement) |
||
lock ステートメント (The lock statement) |
||
ラベル付きステートメント (Labeled statements) |
||
空のステートメント (The empty statement) |
何も処理をしない。処理をする必要はないが、ステートメントを記述する必要がある場合に「;」だけを記述する |
if (condition) { then-statement; } else { else-statement; }if-else - C# リファレンス | Microsoft Learn
conditionに指定できるのは、ブール型のみです。
bool a = true; if (a) { } // OK int x = 1; if (x ) { } // error CS0029: 型 'int' を 'bool' に暗黙的に変換できません if (x != 0) { } // OK
switch (expr) { case case1: break; case case2: break; default: break; }C# switch ステートメント | Microsoft Learn
C# 7.0以降は、exprにはnull以外の式を指定できます。それより前は、
に制限されます。
goto identifier;goto ステートメント - C# リファレンス | Microsoft Learn
identifierに指定できるのは関数内のラベルのみで、関数の外へは移動できません。goto ステートメントでのラベルの使用 | Microsoft Learn
breakでは不可能な、2段以上のネストから抜けるのにgotoは有用です。
for (int i = 0; i < 5; i++) { for (int k = 0; k < 5; k++) { if (k == 1) goto A; } } A:;
return [expression];return ステートメント - C# リファレンス | Microsoft Learn
identifier : statementラベル付きステートメント | Microsoft Learn
statementは省略できません。何も記述する内容がないならば、空のステートメントとして「;」を記述します。
case constant-expression : statement
default : statement
制御フローとは、文を実行する順序です。フロー制御 (C# と Java の比較) | MSDN