switch文は、ある式が、複数の定整数値と一致しているか比較し、一致していたらそれに対応した処理を行うという文です。書式は以下のとおりです。
C言語では条件によって処理を変えたい時にswitch文を使用します。このページではswitch文の構文を例を挙げて説明します。
switch文は、ある式が、複数の定整数値と一致しているか比較し、一致していたらそれに対応した処理を行うという文です。書式は以下のとおりです。
switch (式) {
case 定数式: 文;
case 定数式: 文;
default: 文;
}
各caseは、整数の定数式とともにラベル付けされます。式と定数式が一致していたら文が実行されます。defaultは、他のどのcaseにも一致しなかった場合に対応します。defaultはなくてもかまいません。caseとdefaultの順序は任意です。
caseは、単にラベルとして働きます。ですので、ひとつのcaseに対応する処理が終了した時にswitch文から抜け出す処理を行わないと、その次に書いてある処理が実行されてしまいます。したがって、通常はcase文の処理の最後にはbreakを置きます。
switch (式) {
case 定数式:
文;
文;
:
break;
case 定数式:
文;
文;
:
break;
default:
文;
文;
:
}
いくつか例を挙げてswitch文の動きを確認します。
switch (式) {
case 0:
文A;
break;
case 1:
文B;
break;
default:
文C;
break;
}
上記の場合、式の値が0なら文Aのみ実行されます。1なら文Bのみ、その他なら文Cのみ実行されます。
switch (式) {
case 0:
case 1:
文A;
文B;
break;
default:
文C;
break;
}
上記の場合、式の値が0なら文Aと文Bが実行されます。1でも文Aと文Bが実行されます。その他なら文Cのみ実行されます。
switch (式) {
default:
case 0:
文A;
break;
case 1:
文B;
break;
case 2:
文C;
break;
}
上記の場合、式の値が1なら文Bが実行されます。2なら文Cが実行されます。それ以外なら文Aが実行されます。