C switch 文
switch 文は、式の値に基づいて異なるコードブロックを実行するために使用される、制限のある制御フロー文です。
1つのswitch文を使用すると、変数が複数の値と等しい場合をテストできます。各値は case と呼ばれ、テスト対象の変数は各switch caseに対して検査されます。
構文
C言語ではswitch文の構文:
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 ラベルは整数定数式にすることができますが、浮動小数点数や文字列にすることはできません。
フローチャート
例
上記のコードをコンパイルして実行すると、次の結果が生成されます:
做得好 您的成绩是 Bその他の拡張
C 判断