Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ประเภท Conditional Statements ใน C#

Conditional Statements (คำสั่งเงื่อนไข) ใน C#

ใช้ควบคุม Flow ของโปรแกรมตามเงื่อนไข Boolean

5 ประเภทหลัก

#Statementคำอธิบาย
1ifBoolean Expression ตามด้วย Statement(s) หนึ่งหรือหลาย
2if-elseif พร้อม else สำหรับกรณี False
3nested ifif/else if ภายใน if/else if อีกชั้น
4switchเปรียบเทียบ Variable กับรายการค่าคงที่ (Constant Patterns)
5nested switchswitch ภายใน switch

ตัวอย่างแต่ละประเภท

1. if Statement


if (score >= 50)
{
    Console.WriteLine("Pass");
}

2. if-else Statement


if (score >= 50)
    Console.WriteLine("Pass");
else
    Console.WriteLine("Fail");

3. Nested If / Else-if Chain


if (score >= 90)
    grade = 'A';
else if (score >= 80)
    grade = 'B';
else if (score >= 70)
    grade = 'C';
else
    grade = 'F';

4. Switch Statement (Classic)


switch (day)
{
    case 1: Console.WriteLine("Mon"); break;
    case 2: Console.WriteLine("Tue"); break;
    case 3: Console.WriteLine("Wed"); break;
    default: Console.WriteLine("Other"); break;
}

5. Nested Switch


switch (a)
{
    case 100:
        Console.WriteLine("Outer: 100");
        switch (b)
        {
            case 200:
                Console.WriteLine("Inner: 200");
                break;
        }
        break;
}

Modern Switch Expressions (C# 8.0+)


// Switch Expression (Returns Value)
string result = day switch
{
    1 => "Monday",
    2 => "Tuesday",
    3 => "Wednesday",
    _ => "Other" // Default (Discard _)
};

// Pattern Matching Switch
string Describe(object obj) => obj switch
{
    int i when i > 0 => "Positive Int",
    int i when i < 0 => "Negative Int",
    string s when s.Length > 10 => "Long String",
    null => "Null",
    _ => "Unknown"
};

Ternary Operator (Conditional Operator)


string status = (age >= 18) ? "Adult" : "Minor";
// เทียบเท่า
string status;
if (age >= 18) status = "Adult"; else status = "Minor";

Best Practices

  • ใช้ switch expression สำหรับ Mapping เรียบง่าย
  • ใช้ if-else สำหรับ Complex Conditions (Ranges, Multiple Variables)
  • หลีกเลี่ยง Deep Nesting (Guard Clauses, Early Returns)
  • Pattern Matching (C# 7+) เพิ่มความสามารถของ Switch/If