1. 程式人生 > 其它 >switch case 語句,??運算子

switch case 語句,??運算子

一.switch case 語句

  • switch 是“開關”的意思,它也是一種“選擇”語句,但它的用法非常簡單。switch 是多分支選擇語句。說得通俗點,多分支就是多個 if。

1.switch case語法:

switch (表示式)
{
case 常量表達式1: 語句1
case 常量表達式2: 語句2

case 常量表達式n: 語句n
default: 語句n+1
}

2.說明

1) switch 後面括號內的“表示式”必須是整數型別。也就是說可以是 int 型變數、char 型變數,也可以直接是整數或字元常量,哪怕是負數都可以。但絕對不可以是實數,float 型變數、double 型變數、小數常量通通不行,全部都是語法錯誤。

2) switch 下的 case 和 default 必須用一對大括號{}括起來。

3) 當switch後面括號內“表示式”的值與某個case後面的“常量表達式”的值相等時,就執行此case後面的語句。執行完一個case後面的語句後,流程控制轉移到下一個case繼續執行。如果你只想執行這一個case語句,不想執行其他case,那麼就需要在這個case語句後面加上break,跳出switch語句。

再重申一下:switch是“選擇”語句,不是“迴圈”語句。很多新手看到break就以為是迴圈語句,因為break一般給我們的印象都是跳出“迴圈”,但break還有一個用法,就是跳出switch。

4) 若所有的 case 中的常量表達式的值都沒有與 switch 後面括號內“表示式”的值相等的,就執行 default 後面的語句,default 是“預設”的意思

。如果 default 是最後一條語句的話,那麼其後就可以不加 break,因為既然已經是最後一句了,則執行完後自然就退出 switch 了。

5) 每個 case 後面“常量表達式”的值必須互不相同,否則就會出現互相矛盾的現象,而且這樣寫造成語法錯誤。

6) “case常量表達式”只是起語句標號的作用,並不是在該處進行判斷。在執行 switch 語句時,根據 switch 後面表示式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷。

7) 各個 case 和 default 的出現次序不影響執行結果。但從閱讀的角度最好是按字母或數字的順序寫。

8) 當然你也可以不要 default 語句,就跟 if…else 最後不要 else 語句一樣。但最好是加上,後面可以什麼都不寫。這樣可以避免別人誤以為你忘了進行 default 處理,而且可以提醒別人 switch 到此結束了。

但是需要注意的是,default 後面可以什麼都不寫,但是後面的冒號和分號千萬不能省略

二.??運算子

  • 用於定義可空型別和引用型別的預設值。
  • 如果此運算子的左邊的運算元不為null,則此運算子將返回左邊運算元,否則返回右邊運算元。

例如:

當user.Avatar為null時則返回"/imgs/avatar.jpg",user.Avatar不為null時則返回user.Avatar本身。
空合併運算子為右結合運算子,即操作時從右向左進行組合的。

如,“a??b??c”的形式按“a??(b??c)”計算。

問號運算子更多詳細:

C#中 ??、 ?、 ?: 、?.、?[ ] 問號 - 幽冥狂_七 - 部落格園 (cnblogs.com)