C# で文字列を扱うswitch文:簡単な実用例
はじめに
switch文はC#の基本的な制御構造の一つで、特に複数の条件から選択する際に非常に便利です。
この記事では、特に「文字列を扱うswitch文」について深掘りしていきます。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 Linqを理解すれば、C#プログラミングの世界が変わる 第1版
switch文の基本形
まずはswitch文の基本形を確認しましょう。
switch文は、以下のように使用します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 |
string condition = "A"; switch (condition) { case "A": Console.WriteLine("condition is A"); break; case "B": Console.WriteLine("condition is B"); break; default: Console.WriteLine("condition is neither A nor B"); break; } |
このコードでは、条件を示す文字列(ここでは "A")を評価し、その結果に応じて処理を分岐しています。
出力結果
上記のコードを実行すると、次のような出力結果が得られます。
出力結果
condition is A
文字列の比較
C#のswitch文では、文字列の比較は大文字小文字を区別します。
つまり、"A"と"a"は別の文字列として扱われます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 |
string condition = "a";switch (condition) { case "A": Console.WriteLine("condition is A"); break; case "a": Console.WriteLine("condition is a"); break; default: Console.WriteLine("condition is neither A nor a"); break; } |
こちらのコードを実行すると、
出力結果
condition is a
と表示されます。
大文字小文字を区別しない比較
しかし、大文字小文字を区別しない比較をしたい場合もあるでしょう。
その場合には、条件式を "ToLower()" や "ToUpper()" を使って一律に大文字または小文字に変換してから比較します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
string condition = "A"; switch (condition.ToLower()) { case "a": Console.WriteLine("condition is a"); break; default: Console.WriteLine("condition is not a"); break; } |
このコードを実行すると、
出力結果
condition is a
と表示されます。
文字列の部分一致によるswitch文の使用
さて、文字列の部分一致を条件としたい場合はどうすればよいでしょうか?
C#のswitch文は直接的な部分一致の検証はサポートしていませんが、正規表現を用いることで実現できます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 |
string condition = "Hello, world!"; switch (condition) { case var test when new Regex(@"Hello").IsMatch(test): Console.WriteLine("condition contains 'Hello'"); break; default: Console.WriteLine("condition does not contain 'Hello'"); break; } |
このコードを実行すると、
出力結果
condition contains 'Hello'
と表示されます。
switch文の限界
switch文は非常に便利な制御構造ですが、一方で柔軟性には限界があります。
特に、条件式が複雑になってくると、if文の方が柔軟に対応できることがあります。
ソースコード例
1 2 3 4 5 6 7 8 9 |
string condition = "Hello, world!"; if (condition.Contains("Hello")) { Console.WriteLine("condition contains 'Hello'"); } else { Console.WriteLine("condition does not contain 'Hello'"); } |
このコードを実行すると、
出力結果
condition contains 'Hello'
と表示されます。
まとめ
C#のswitch文は、特に複数の条件から選択する際に非常に便利な構文です。
この記事では、文字列を条件としたswitch文の基本的な使い方を紹介しました。
さらに、大文字小文字の区別、部分一致による条件指定、そしてif文との使い分けについても触れてきました。
この記事が、あなたのプログラミングスキル向上に役立つことを願っています。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!