Conditional Statements (คำสั่งเงื่อนไข) ใน C#
ใช้ควบคุม Flow ของโปรแกรมตามเงื่อนไข Boolean
5 ประเภทหลัก
| # | Statement | คำอธิบาย |
|---|---|---|
| 1 | if | Boolean Expression ตามด้วย Statement(s) หนึ่งหรือหลาย |
| 2 | if-else | if พร้อม else สำหรับกรณี False |
| 3 | nested if | if/else if ภายใน if/else if อีกชั้น |
| 4 | switch | เปรียบเทียบ Variable กับรายการค่าคงที่ (Constant Patterns) |
| 5 | nested switch | switch ภายใน 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