Nested Switch Statements
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 11/66。
入れ子になったswitch文を使用すると、より複雑な意思決定を行うために、ある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;
}次のケースへのフォールスルーを防ぐために、常に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 の場合:
自分で試してみよう
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