Cplusplus-cpp-switch-statement
提供:Dev Guides
C ++ switchステートメント
*switch* ステートメントを使用すると、変数を値のリストと等しいかどうかをテストできます。 各値はケースと呼ばれ、オンになっている変数はケースごとにチェックされます。
構文
C ++での switch ステートメントの構文は次のとおりです-
switch(expression) {
case constant-expression :
statement(s);
break;//optional
case constant-expression :
statement(s);
break;//optional
//you can have any number of case statements.
default ://Optional
statement(s);
}
次のルールは、switch文に適用されます-
- switch ステートメントで使用される expression は、整数型または列挙型であるか、クラスが整数型または列挙型への単一の変換関数を持つクラス型である必要があります。
- スイッチ内には、任意の数のcaseステートメントを含めることができます。 各ケースの後に、比較する値とコロンが続きます。
- ケースの constant-expression は、スイッチの変数と同じデータ型である必要があり、定数またはリテラルである必要があります。
- オンに切り替えられる変数がケースと等しい場合、そのケースに続くステートメントは、 break ステートメントに到達するまで実行されます。
- breakステートメントに達すると、スイッチは終了し、制御のフローはswitchステートメントに続く次の行にジャンプします。
- すべてのケースに休憩を含める必要はありません。 休憩が表示されない場合、制御の流れは、休憩に到達するまで後続のケースに_フォールスルー_します。
- switch ステートメントには、オプションの default ケースを含めることができます。これは、スイッチの最後に表示する必要があります。 デフォルトのケースは、どのケースにも当てはまらない場合にタスクを実行するために使用できます。 デフォルトの場合、ブレークは必要ありません。
流れ図
例
#include <iostream>
using namespace std;
int main () {
//local variable declaration:
char grade = 'D';
switch(grade) {
case 'A' :
cout << "Excellent!" << endl;
break;
case 'B' :
case 'C' :
cout << "Well done" << endl;
break;
case 'D' :
cout << "You passed" << endl;
break;
case 'F' :
cout << "Better try again" << endl;
break;
default :
cout << "Invalid grade" << endl;
}
cout << "Your grade is " << grade << endl;
return 0;
}
これは、次の結果を生成します-
You passed
Your grade is D