【Java基礎】03選擇結構

一二_g發表於2024-08-06

if分支

if

if(條件){
    程式碼塊;
}

if...else...

if(條件){
    程式碼塊1;
}else {
    程式碼塊2;
}

if...else if...else...

if(條件1){
    程式碼塊1;
}else if (條件2){
    程式碼塊2; // else if 可以寫多個
}else {
    程式碼塊3; // else 可以省略不寫
}

if 巢狀

 if(條件1) {
      if(條件2) {
              程式碼塊1;
      } else {
              程式碼塊2;
      }
} else {
      程式碼塊3;
}

if選擇結構,包括以下形式

  • 基本if選擇結構:可以處理單一或組合條件的情況
  • if-else選擇結構:可以處理簡單的條件分支情況
  • 多重if選擇結構:可以處理分段的條件分支情況
  • 巢狀if選擇結構:可以處理複雜的條件分支情況,透過外層語句和內層語句的協作,增強程式的靈活性

字串比較

  • ==:比較引用型別記憶體地址是否相同
  • equals:預設比較記憶體地址,但是String類重寫了equals()方法,比較的是內容是否相同。

例:使用者輸入性別sex 判斷是否是“男”

sex.equals("男"); // 可能會出現空指標異常(使用者未輸入內容)
"男".equals(sex); // 避免空指標異常

字串為null 時,表示沒有在堆中開闢空間

switch分支

switch (表示式) {
    case 常量 1:
        語句;
        break;
    case 常量 2:
        語句;
        break;
    …
    default:
        語句;
}

使用switch分支的幾點注意事項

  • 表示式型別只能是byte、short、int、char,JDK5開始支援列舉,JDK7開始支援String、不支援double、float、long。
  • case給出的值不允許重複,且只能是字面量,不能是變數。
  • 正常使用switch的時候,不要忘記寫break,否則會出現穿透現象。
  • 存在多個case分支的程式碼是一樣時,可以把程式碼寫到一個case塊,其他case塊透過穿透效能,穿透到該case塊即可,這樣可以簡化程式碼。

switch與多重if

相同點:都是用來處理多分支條件的結構

不同點:switch選擇結構,只能處理等值條件判斷的情況;多重if選擇結構,適合某個變數處於某個連續區間時的情況。

在等值判斷時if 判斷可以換為switch 判斷。

相關文章