[C#] #2 條件式語句基本介紹、範例 - antqtech/KM GitHub Wiki
條件式語句 (Conditional Statements) 有很多種
- If
- If - else
- If - else if - else
- Nested if
- Switch
- 條件 (三元) 運算子/conditional (ternary) operator
if
語句
1. if
語句會根據條件是否是 true
(符合條件) 來執行下面的程式碼區塊。
int number = 10;
if (number > 0)
{
Console.WriteLine("The number is positive.");
}
如果number 大於 0 (不包括0), Console.WriteLine("The number is positive.");
會執行
if-else
語句
2. 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.");
if-else if-else
語句
3. 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.");
if
語句
4. 巢狀(Nested) 巢狀 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 的部分。
switch
語句
5. 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;
?:
) (Ternary Operator)
6. 三元運算子 (三元運算子是一種簡化的 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"