回覆列表
-
1 # old邵
-
2 # 用戶3161812622903643
if和switch的主要區別如下:
1)if的括號內的表達式可以分別是布爾類型的合法表達式、可以是所有大於0的正整數為true,反之為小於等於0的正整數為false、可以是常量、枚舉;而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下代碼: switch (2) // 除了0和1的其它正整數 { case false: // 對應0 printf("false "); break; case true: // 對應1 printf("true "); break; default: // 對應非0和1以外的正整數 printf("其它 "); break; }
2)儘管if括號內也支持常量、枚舉但也是有前提的那就是常量或枚舉必須要顯式給出相應的數值。而switch則不必;
3)switch適合處理判斷分支較多的情況下(代碼可讀性好),而if適合處理判斷分支較少的情況下(反之代碼可讀性差,容易出現漏判或重複判斷)。
我們在寫代碼當中用到最多的應該就是if else。由於if else可以代替switch case的功能,所以我們在很多場景選擇了if else而沒有使用switch case,其實有些場景之下使用switch case的效果更好一些。
if語句可以做條件判斷也可以做區間判斷,在執行一個if內容後自動結束,且else只能放在最後面執行。switch只能做固定值判斷,case的值為傳入的參數,遇到break結束,default可以放在任何位置。