[C#] #2 條件式語句基本介紹、範例 - antqtech/KM GitHub Wiki

條件式語句 (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"