Menu
Coddy logo textTech

Nested Switch Statements

CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 11/66。

ネストされた switch 文を使用すると、より複雑な決定処理のために 1 つの switch 文を別の switch 文の中に配置できます。

基本的なネストされた switch を作成:

string department = "Sales";
string level = "Senior";

switch (department)
{
    case "Sales":
        switch (level)
        {
            case "Junior":
                Console.WriteLine("Sales Junior");
                break;
            case "Senior":
                Console.WriteLine("Sales Senior");
                break;
        }
        break;
    case "IT":
        switch (level)
        {
            case "Junior":
                Console.WriteLine("IT Junior");
                break;
            case "Senior":
                Console.WriteLine("IT Senior");
                break;
        }
        break;
}

次の case へのフォールスルーを防ぐため、常に break 文を含めてください。

コードを読みやすくするために適切なインデントを保つことを忘れないでください。

challenge icon

チャレンジ

中級

calculatePrice という名前のメソッドを作成してください。このメソッドは:

  1. 3 つのパラメータを受け取ります:
    • productType (string): "Electronics"、"Clothing"、または "Food" のいずれか
    • productTier (string): "Basic"、"Premium"、または "Luxury" のいずれか
    • basePrice (int): 商品の基本価格
  2. これらのルールを適用した後の最終価格 (int) を返します:
    • Electronics の場合:
      • Basic: 基本価格に $50 を追加
      • Premium: 基本価格に $100 を追加
      • Luxury: 基本価格に $250 を追加
    • Clothing の場合:
      • Basic: 基本価格に $10 を追加
      • Premium: 基本価格に $50 を追加
      • Luxury: 基本価格に $100 を追加
    • Food の場合:
      • Basic: 基本価格に変更なし
      • Premium: 基本価格に $15 を追加
      • Luxury: 基本価格に $30 を追加
    • その他の商品タイプやティアの場合、基本価格を変更せずに返します

チートシート

ネストされた switch 文により、複雑な決定処理のために 1 つの switch 文を別の switch 文の中に配置できます:

string department = "Sales";
string level = "Senior";

switch (department)
{
    case "Sales":
        switch (level)
        {
            case "Junior":
                Console.WriteLine("Sales Junior");
                break;
            case "Senior":
                Console.WriteLine("Sales Senior");
                break;
        }
        break;
    case "IT":
        switch (level)
        {
            case "Junior":
                Console.WriteLine("IT Junior");
                break;
            case "Senior":
                Console.WriteLine("IT Senior");
                break;
        }
        break;
}

次の case へのフォールスルーを防ぎ、読みやすさを保つために、常に break 文を含め、適切なインデントを維持してください。

自分で試してみよう

public class CalculatePrice
{
    // calculatePrice メソッドを実装する
    public static int calculatePrice(string productType, string productTier, int basePrice)
    {
        // ここにコードを記述する
        
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン