if和switch的主要區別如下:
1)if的括號內的表示式可以分別是布林型別的合法表示式、可以是所有大於0的正整數為true,反之為小於等於0的正整數為false、可以是常量、列舉;而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下程式碼: switch (2) // 除了0和1的其它正整數 { case false: // 對應0 printf("false\n"); break; case true: // 對應1 printf("true\n"); break; default: // 對應非0和1以外的正整數 printf("其它\n"); break; }
2)儘管if括號內也支援常量、列舉但也是有前提的那就是常量或列舉必須要顯式給出相應的數值。而switch則不必;
3)switch適合處理判斷分支較多的情況下(程式碼可讀性好),而if適合處理判斷分支較少的情況下(反之程式碼可讀性差,容易出現漏判或重複判斷)。
if和switch的主要區別如下:
1)if的括號內的表示式可以分別是布林型別的合法表示式、可以是所有大於0的正整數為true,反之為小於等於0的正整數為false、可以是常量、列舉;而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下程式碼: switch (2) // 除了0和1的其它正整數 { case false: // 對應0 printf("false\n"); break; case true: // 對應1 printf("true\n"); break; default: // 對應非0和1以外的正整數 printf("其它\n"); break; }
2)儘管if括號內也支援常量、列舉但也是有前提的那就是常量或列舉必須要顯式給出相應的數值。而switch則不必;
3)switch適合處理判斷分支較多的情況下(程式碼可讀性好),而if適合處理判斷分支較少的情況下(反之程式碼可讀性差,容易出現漏判或重複判斷)。