C#
 Computer >> コンピューター >  >> プログラミング >> C#

【C#入門】ネストされたswitchステートメントの使い方を徹底解説

C#では、switchステートメントの中に別のswitchステートメントを記述することができます。これを「ネストされたswitch(入れ子のswitch)」と呼びます。外側のswitchのcaseブロック内のステートメント列の一部として、内側のswitchを配置する形になります。

重要なポイントとして、内側と外側のswitchで同じcase定数が使われていても競合は発生しません。それぞれが独立したswitchとして評価されるためです。

基本構文

ネストされたswitchの基本的な構文は次のとおりです。

switch(ch1) {
    case 'A':
    Console.WriteLine("このAは外側のswitchの一部です");
    switch(ch2) {
       case 'A':
       Console.WriteLine("このAは内側のswitchの一部です");
       break;
       case 'B': /* 内側のBケースの処理 */
    }
    break;
    case 'B': /* 外側のBケースの処理 */
}

上記のように、外側の ch1 に対する判定の中で、さらに ch2 に対する判定を行っています。たとえ内外で同じ 'A' というcaseラベルが存在しても、問題なく動作します。

C#での実装例

続いて、実際に動作する完全なサンプルコードを見てみましょう。変数 a の値で外側のswitchを判定し、その内部で変数 b の値によって内側のswitchを判定しています。

サンプルコード

using System;

namespace Demo {
    class Program {
       static void Main(string[] args) {
          int a = 100;
          int b = 200;

          switch (a) {
             case 100:
             Console.WriteLine("これは外側のswitchの一部です");
             switch (b) {
                case 200:
                Console.WriteLine("これは内側のswitchの一部です");
                break;
             }
             break;
          }

          Console.WriteLine("a の値は : {0}", a);
          Console.WriteLine("b の値は : {0}", b);
          Console.ReadLine();
       }
    }
}

実行結果

これは外側のswitchの一部です
これは内側のswitchの一部です
a の値は : 100
b の値は : 200

このように、外側の条件(a == 100)が一致した場合にのみ、内側のswitch(b == 200)が評価され、両方のメッセージが出力されます。

ネストされたswitchを使う際の注意点

  • ネストは浅く保つ: 入れ子が深くなると可読性が大きく低下します。2〜3段階程度にとどめるのが望ましいでしょう。
  • break文の書き忘れに注意: 各caseブロックには必ずbreakを記述し、意図しないフォールスルーを防ぎましょう。
  • 代替手段の検討: 条件分岐が複雑になる場合は、if-else文への置き換え、メソッドの分割、あるいはポリモーフィズムの活用を検討するとコードがすっきりします。
  • switch式の活用: C# 8.0以降では、switch式を使うことでより簡潔に条件分岐を記述できる場合もあります。

まとめ

C#のネストされたswitchステートメントを使えば、複数の条件を組み合わせた多段階の分岐処理を構造的に記述できます。内外で同じcase定数を持っても競合しないため柔軟ですが、使いすぎると可読性を損なうため、適度なネストの深さを心がけることが大切です。

  1. AndroidのListViewでネストされた(2次元)配列を表示する方法【サンプルコード付き】

    この記事では、AndroidアプリのListViewを使って、ネストされた(多次元)配列の値を画面に表示する方法を、実際のコード例とともにわかりやすく解説します。2次元配列のデータを1つのリストとして展開して表示する基本的な手法をマスターしましょう。全体の流れ今回作成するのは、2次元配列に格納された複数の文字列データをListViewに展開して一覧表示するシンプルなアプリです。手順は以下の通りです。Android Studioで新規プロジェクトを作成するレイアウトファイル(activity_main.xml)にListViewを配置するMainActivityでネストされた配列を展開し、Ada

  2. Samsung Smart Switchの使い方完全ガイド|データ移行・バックアップ・復元の手順を解説

    Samsung Smart Switch(スマートスイッチ)は、スマートフォン間で連絡先、写真、動画、アプリなどのデータを簡単に移行できるSamsung公式の無料アプリです。データ転送だけでなく、バックアップや復元、ソフトウェア更新、メール同期などにも対応しており、機種変更時の強い味方となります。この記事では、Smart Switchを使ったデータ移行の手順と、バックアップ・復元の方法を詳しく解説します。ぜひ最後までご覧ください。Smart Switchでデータを転送する方法古いスマホから新しいスマホへデータを素早く移したいなら、Smart Switchが最適です。ワイヤレスで転送できるため、