1-11-3. switch文

公開日: 18:04 1. 基本編/1-11. 分岐構造/1-11-3. switch文


switch文はある変数が複数の値に対して等しいかテストすることができます。各値はcaseと呼ばれ、変数はそれぞれのcaseかチェックされ切り替えられます。

構文

switch( 式 ){
    case 定数式 :
       statement(s);
       break; // オプション
    case 定数式 :
       statement(s);
       break; // オプション
  
    // case文はいくつでも記述できます
    default : // オプション
       statement(s);
}

次のルールがswitch文に適用されます。
  • switch文に使われる式は整数かenum型、またはそれらに単一変換関数を持つクラスである必要があります。
  • case文はswich内に複数記述できます。それぞれのcase文の後ろには比較される値とコロン(:)が続きます。
  • case文の定数式はswitch文にある変数と同じ型でなければならず、定数化かリテラルです。
  • 変数がcase文と等しいとされた時、case文に続く構文がbreak文に到達するまで実行されます。break文に到達すると、switch文は終了し、制御の流れはswitch文の次の行へ移ります。
  • すべてのcase文にbreakは必要ありません。break文がなければ、制御の流れはbreak文に到達するまでその後ろのcase文に順次移ります。
  • switch文はswitch文の最後にオプションでdefault文を記述できます。default文はどのcase文も真とならなかった時に実行されるタスクのために使われます。
  • default文にbreak文は必要ありません。

使用例

#include <iostream>
using namespace std;
 
int main ()
{
   // ローカル変数の宣言 
   char grade = 'D';

   switch(grade)
   {
   case 'A' :
      cout << "大変良く出来ました!" << endl; 
      break;
   case 'B' :
   case 'C' :
      cout << "よくできました" << endl;
      break;
   case 'D' :
      cout << "合格" << endl;
      break;
   case 'F' :
      cout << "やり直し" << endl;
      break;
   default :
      cout << "無効です" << endl;
   }
   cout << "あなたのランクは " << grade << endl;
 
   return 0;
}

次の結果が得られます。
合格
あなたのランクは D
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿