不學 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
更清晰。