C++ switch文のサンプル

C++のswitch文のサンプルです。

目次

サンプル switch文とは
  switch文のサンプル
  breakがない場合
  switch文の中でif文を使用する

switch文とは

switch(条件){
  case 値 :
    処理
    break;
   ・・・
  default:
    処理
    break;
}
  • 条件の値とcaseの値が一致すれば、配下の処理が実行されます。
  • breakでswitch文を抜けます。breakがないと下の判定(case/default)に行ってしまいます。
  • defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。

switch文のサンプル

#include <iostream>
using namespace std;

int main() {
	int num = 2;

	switch (num) {
		case 1:
			cout << "one";
			break;
		case 2:
			cout << "two"; // two 出力される
			break;
		default:
			cout << "other";
			break;
	}
	return 0;
}

5行目は、変数に値をセットしています。
7行目からswitch文が始まります。
11行目のcase 2は変数の値と一致するのでその配下の処理が実行されます。
12行目の処理が実行されます。
13行目のbreakでswitch文を抜けます。

breakがない場合

#include <iostream>
using namespace std;

int main() {
	int num = 1;

	switch (num) {
		case 1:
			cout << "one"; // one 出力される

		case 2:
			cout << "two"; // two 出力される
			break;
		default:
			cout << "other";
			break;
		}
	return 0;
}

10行目は、breakがありません。
8行目のcase 1の処理の後、11行目のcase 2の処理も実行されます。
フォールスルー(fall through/落ちる)と呼ばれます。
breakを書き忘れたのかわかりづらいので使用しないほうが良いです。

switch文の中でif文を使用する

#include <iostream>
using namespace std;

int main() {
	int num = 3;

	switch (num) {
		case 3:
			if (num % 2 == 0) {
				cout << "偶数";
			}
			else {
				cout << "奇数"; // 出力される;
			}
			break;
		default:
			cout << "other";
			break;
	}
	return 0;
}

9行目はswitch文の中のcaseの後にif文を使用しています。
%は、割り算の余りを求めます。

関連の記事

C++ if文 条件分岐を行うサンプル
C++ for文 処理を繰り返すサンプル(break/continue)
C++ while文とdo while文のサンプル

△上に戻る