C switch 文

C 判断C 判断

switch 文は、式の値に基づいて異なるコードブロックを実行するために使用される、制限のある制御フロー文です。

1つのswitch文を使用すると、変数が複数の値と等しい場合をテストできます。各値は case と呼ばれ、テスト対象の変数は各switch caseに対して検査されます。

構文

C言語ではswitch文の構文:

switch(expression){ case constant-expression : statement(s); break; /*オプション*/ case constant-expression : statement(s); break; /*オプション*/ /*case 文は任意の数だけ持つことができます*/ default : /*オプション*/ statement(s); }

switch 文の説明:

  • switch の後の式の値は、一致する値が見つかるか、default(存在する場合)に到達するまで、各 case の後の定数値と比較されます。
  • 一致する値が見つかった場合、対応する case の後のコードブロックが実行され、switch 文から抜けます。
  • 一致する値がなく、default がある場合は、default の後のコードブロックが実行されます。
  • 一致する値がなく、default もない場合は、switch 文全体を最後までスキップします。

switch文は以下の規則に従う必要があります:

  • switch 式の型:switch 文内の式は、整数型(char、short、int、または列挙型)であるか、整数型に暗黙的に変換できる式でなければなりません。

  • case ラベルの一意性:switch 文では、各 case ラベルは一意でなければならず、重複した値は許可されません。

  • default のオプション性:switch 文の default ラベルはオプションです。一致する case ラベルがない場合、default ラベルのコードブロック(存在する場合)が実行されます。

  • case ラベルの定数値:case ラベルの後の値は定数式でなければなりません。つまり、その値はコンパイル時に決定できる必要があります。

  • case ラベルの順序:switch 文の case ラベルの順序は重要ではありません。任意の順序で記述できます。プログラムは case ラベルが現れる順に照合します。

  • break 文の使用:各 case ラベルのコードブロックの終わりには、通常 break 文を使用して switch 文の実行を終了する必要があります。break 文がない場合、プログラムは break 文に遭遇するか switch 文が終了するまで、次の case ラベルのコードを実行し続けます。

  • switch 文のネスト:switch 文は他の switch 文の中にネストできますが、コードの可読性と複雑さに注意する必要があります。

  • case ラベルと式の範囲:switch 文の case ラベルは整数定数式にすることができますが、浮動小数点数や文字列にすることはできません。

フローチャート

C 中的 switch 语句

例

#include <stdio.h> int main () { /*ローカル変数の定義*/ char grade = 'B'; switch(grade) { case 'A' : printf("素晴らしい!\n" ); break; case 'B' : case 'C' : printf("よくできました\n" ); break; case 'D' : printf("合格です\n" ); break; case 'F' : printf("もう一度試してみてください\n" ); break; default : printf("無効な成績\n" ); } printf("あなたの成績は %c です\n", grade ); return 0; }

上記のコードをコンパイルして実行すると、次の結果が生成されます:

做得好
您的成绩是 B

C 判断C 判断

その他の拡張