C# switch~caseが初心者でも必ずわかる!if文との違いも紹介

プログラミング言語C#におけるswitch文について、C#初心者向けにエンジニアの筆者が解説します。

switch文はif文と似ており、よく使われる構文の1つです。

本記事を読めば、C# switch文の書き方、break・defaultとは何か・if文とswitch文の使い分け、フォールスルーの禁止について理解できるでしょう。

ぜひ最後まで読んで、C# switch文を理解してください!

監修
Udemy講師 |

専門領域:C#,プログラミング,SQL

ピーコック アンダーソン

20年ほどプログラマーとして活動。初期の頃は様々な現場を転々とするプログラマーとして10年ほど経験を積み,その後大手メーカーに入社。C#やSQLServerを中心とした製品開発にて設計、製作、保守、プロジェクトリーダー等を10年近く担当。

…続きを読む

C# switch文の書き方

Switch文は、変数などで受け取った変数値の結果を元に、実行する処理を変えたいときに使用します。先ず、Switch文の構文は以下の通りです。

\文字より動画で学びたいあなたへ/

Udemyで講座を探す >

フォールスルー

switch文

指定された変数値を元に一致するcase値の制御文を実行します。

値には整数型(int)もしくは文字列、列挙体などが使用できます。floatやdouble型などの浮動小数点は誤差が発生する可能性があるため推奨されていません。

break文

switchのブロックから抜けます。break文の後は実行されません。

for,while文などの場合はループから脱出するときに使われます。

default文

変数が全てのcaseの値に一致しない場合に実行されます。

デフォルトで実施する処理がない場合は,break;のみを記載しましょう。

または、defaultセクションを消すことで何も処理がおこなわれないままSwitch文を抜けることができます。

if文とswitch文の使い分けのポイント

switch文を今回解説していますが、if文でも同じ内容を書くことはもちろん可能です。

使い分けのポイントとしては、

①単純な2分岐であれば、if文を使う

②多分岐(3分岐)以上であればswitch文を使う

多分岐の場合は特にswitch文を使うことでプログラミングのコードの見やすさが向上し管理がしやすくなります。

また、多分岐の場合ではswitch文のほうがif文よりも速いとされています。

C#のswtich文では,条件式の評価結果に整数(int型)以外に文字列(string型)も利用できます。

switch文を使いこなすことができれば、かなり便利です。

実際にswitch文を書いてみよう(int型)

先程、紹介したswitch文の構文を使って、プログラムを書いてみましょう。

以下、サンプルコードになります。

変数numで受け取ったint値を元に、実行する内容を変えることができました。

実際にswitch文を書いてみよう(string型)

先程int型でのswitch文を紹介しました。続いては string型でのswitch文の書き方です。

C/C++では整数型(int)のみを制御式の値に使用できますが、文字列の利用できませんでした。

C#ではswitch文の制御値に文字列型の利用が可能です。

それでは、実際にサンプルコードを見て行きましょう。

String型のstrに文字列が入力されており、その値を元にcase文が実行されています。

C# switch文 フォールスルーの禁止について

C#でのSwitch文では、フォールスルーが禁止されています。

フォールスルーとは、switch文でbreak文を省略した書き方のことです。

まず、C/C++などでは下記のような書き方ができます。

先程,勉強したcase文のサンプルコード1に似ていますが、case0にbreak文がありません。

これは,break文を書き忘れたのでしょうか?

いいえ、C/C++ではこのような記載ができ、case文が失敗しない限りは次のcase文も実行したいときに書きます。

C/C++では、こちらのコンパイルが可能です。実際に実行すると下記のようになります。

C#では、このフォールスルー書き方が禁止されました。

理由の一つとしては、このフォールスルー処理が意図して書かれたものなのか、間違ってbreak文を書き忘れてしまったのかの判断ができないですよね。

バグの温床となってしまうからです。

C#ではこのコードを実際にコンパイルしようとすると,エラーが出てきます。

C#では、必ずcase文のラベル毎に「break」「goto」「return」のどれかを含めた記述をしましょう。

C#におけるswitch文をマスターしよう

プログラミング言語C#のswitch文が理解できましたか?繰り返しになりますが、switch文はよく使う構文の1つなので、ぜひ理解しておきましょう。

C#の重要文法について手を動かしつつ動画で学びたいような方には、下記の講座がおすすめです。

Udemyおすすめ講座

C#文法1:C#で最初に身に着けるべき30の文法

C#文法1:C#で最初に身に着けるべき30の文法

4.3(1,858 件の評価)

9,652 人の受験生

作成者: ピーコック アンダーソン(C#,プログラミング,SQL)

C#文法基本のキ:if文などの王道の文法からクラス,インスタンス,インタフェース,抽象クラス,Disposeなど,C#初心者がつまずきそうな部分を丁寧に動画で解説しています

\無料でプレビューをチェック!/

講座を見てみる

レビューの一部をご紹介

評価:★★★★★
コメント:初学者のレビューですが、導入として素晴らしいと感じました。(導入として) 本編が適切なボリューム・密度であることに加え、私としてはボーナス レクチャーのラーニング パスが非常に参考になりました。その他の講義も受講させていただこうと考えています。

評価:★★★★★
コメント:非常に丁寧に説明していてわかりやすいです。一回の視聴では理解できていない部分もあるので、実践と並行で繰り返し視聴して自分のものにしていこうと思います。

ぜひこの機会にC#の基礎を固めましょう!