不學 JAVA 換學 C# 之覺得心累 - L1:ch5 條件判斷
AdSense
前言
條件判斷可以用來控制程式流程。透過條件語句,我們可以根據不同的條件執行不同的邏輯。
if-else 判斷式
if-else 是最常用的條件語句,用於根據布林條件執行程式碼。條件為 true 時執行 if 區塊的程式碼,否則執行 else 區塊的程式碼。
語法
1 | if (條件) |
可以使用 else if 檢查多個條件。
例子
1 | int score = 85; |
switch 判斷式
檢查一個變數的多個可能值,當該 case 的條件被滿足時,執行對應的程式碼區塊。case 條件的值必須是常數。
基本語法
1 | switch (變數) |
例子
1 | string day = "Monday"; |
優點
- 多分支選擇:適合處理多個明確值的條件邏輯。
- 效率高:在某些情況下,
switch比多層if-else效率更好。 default區塊:用於處理未匹配的情況。
注意
1. 在 switch 中,至少一定要有一個 break。
break 的作用是用來終止當前的 case 區塊,並跳出 switch 語句,避免程式繼續執行到後續的 case 區塊。如果省略 break,程式將繼續執行後續的 case 區塊,導致出現 fallthrough 穿透問題。
2. 一個程式碼區塊可以有多個 case 條件
1 | string day = "Monday"; |
3. 不只比較相等,還比較大小、範圍和額外條件
1 | int check = 100; |
上面的例子中,line 4 和 line 5 是一樣的條件,不同的地方在於:
case > 0 and < 100:用and合併條件- 直接檢查
number是否同時符合> 0和< 100的條件。 - 邏輯更簡潔,適用於純粹基於值的比較。
- 條件的值必須是常數
- 直接檢查
case > 0 when number < 100:用when關鍵字添加額外條件- 先檢查
number是否符合> 0的條件。 - 再判斷
number < 100的條件是否成立。 - 條件可以使用變數,而且更加靈活,例如依賴外部狀態或更複雜的計算。
- 用
when關鍵字稱作 Case guards
- 先檢查
if-else 與 switch 的選擇
-
if-else- 條件較少。
- 條件之間有邏輯關係,需要使用
&&或||。
-
switch- 需要檢查單一變數的多個可能值。
- 條件較多,且每個條件的處理邏輯簡單。
- 結構比多層
if-else更清晰。