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 文を含めてください。
コードを読みやすくするために適切なインデントを保つことを忘れないでください。
チャレンジ
中級calculatePrice という名前のメソッドを作成してください。このメソッドは:
- 3 つのパラメータを受け取ります:
- productType (string): "Electronics"、"Clothing"、または "Food" のいずれか
- productTier (string): "Basic"、"Premium"、または "Luxury" のいずれか
- basePrice (int): 商品の基本価格
- これらのルールを適用した後の最終価格 (int) を返します:
- Electronics の場合:
- Basic: 基本価格に $50 を追加
- Premium: 基本価格に $100 を追加
- Luxury: 基本価格に $250 を追加
- Clothing の場合:
- Basic: 基本価格に $10 を追加
- Premium: 基本価格に $50 を追加
- Luxury: 基本価格に $100 を追加
- Food の場合:
- Basic: 基本価格に変更なし
- Premium: 基本価格に $15 を追加
- Luxury: 基本価格に $30 を追加
- その他の商品タイプやティアの場合、基本価格を変更せずに返します
- Electronics の場合:
チートシート
ネストされた 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)
{
// ここにコードを記述する
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety