條件式語句 (Conditional Statements) 有很多種
- If
- If – else
- If – else if – else
- Nested if
- Switch
- 條件 (三元) 運算子/conditional (ternary) operator
1. if 語句
if 語句會根據條件是否是 true(符合條件) 來執行下面的程式碼區塊。
int number = 10;
if (number > 0)
{
Console.WriteLine("The number is positive.");
}
如果number 大於 0 (不包括0), Console.WriteLine("The number is positive."); 會執行
2. if-else 語句
if-else 語句可以說是if語句的延長, 如果if 條件為 false 時,會執行 else 區塊的程式碼。
int number = -5;
if (number > 0)
{
Console.WriteLine("The number is positive.");
}
else
{
Console.WriteLine("The number is not positive.");
}
如果number 不大於0, 程式將進到else語句, 會輸出 Console.WriteLine(“The number is not positive.”);
3. if-else if-else 語句
if-else if-else 語句是在進行多個條件判斷會用到,條件會從上面依次被檢查,直到找到第一個為 true 的條件並執行對應的程式碼。
int number = 0;
if (number > 0)
{
Console.WriteLine("The number is positive.");
}
else if (number < 0)
{
Console.WriteLine("The number is negative.");
}
else
{
Console.WriteLine("The number is zero.");
}
在這邊的情況 if, else if 都會進行條件判斷, 因為number 都不是 > 0 跟 < 0, 所以會進到 else 的語句,然而輸出 Console.WriteLine("The number is zero.");
4. 巢狀(Nested) if 語句
巢狀 if 語句是指在一個 if 語句裡面又有if 語句, 會需要在進行層次的條件判斷。
int number = 15;
if (number > 0)
{
if (number % 2 == 0)
{
Console.WriteLine("The number is positive and even.");
}
else
{
Console.WriteLine("The number is positive and odd.");
}
}
else // number 少於 0
{
Console.WriteLine("The number is not positive.");
}
如果number 大於 0, 會進到第一個if, 然後會進行基偶數判斷, 因為15 是基數(% 2 = 0, 除於2還有剩), 所以會近到else 的部分。
5. switch 語句
switch 語句用於當有多個條件需要檢查時,根據不同的值執行對應的程式碼。這比使用多個 if-else 更為簡潔。
int dayOfWeek = 3;
switch (dayOfWeek)
{
case 1:
Console.WriteLine("Monday");
break;
case 2:
Console.WriteLine("Tuesday");
break;
case 3:
Console.WriteLine("Wednesday");
break;
case 4:
Console.WriteLine("Thursday");
break;
case 5:
Console.WriteLine("Friday");
break;
case 6:
Console.WriteLine("Saturday");
break;
case 7:
Console.WriteLine("Sunday");
break;
default:
Console.WriteLine("Invalid day");
break;
}
以上的 case ‘1, 2, 3, 4, 5, 6, 7” 對應到 dayOfWeek, 如果 以上的cases 完全沒中會進到default (預設).
注意: 每一個 case 需要 break; 不然的話會輸出知道第一個break;
6. 三元運算子 (?:) (Ternary Operator)
三元運算子是一種簡化的 if-else 語句,通常用於簡單的條件判斷。
int number = 10;
string result = (number > 0) ? "Positive" : "Negative or Zero";
Console.WriteLine(result);
公式 = (判斷) ? true : false
如果number 超過0, 會回傳"Positive", 如果不是超過0會回傳"Negative or Zero"
