1樓:手機使用者
在大多數情況下,switch的效能不會比ifelse低。
在某些特定情況下,編譯器能對switch進行優化。比如說:
1.不按順序比較,而是構造一個二分查詢樹(binarydecisiontree),這樣子比較的平均次數就會下降。
2.可以做個跳轉表(jumptable)這樣子就不許要任何比較了。
switch 語句比if語句有什麼好處
2樓:古樹上的毛毛蟲
這樣說吧switch語句是為了簡化if的流程分支,簡化一部分**。但是既然是簡化部分,功能就會稍微有點欠缺。舉個例子:
int i=9;
if(8==i)
cout<<"zhao"< else if(7==i) cout<<"qian"< else if(4==i) cout<<"sun"< else if(1==i) cout<<"li"< else if(0==i) cout<<"zhou"< else if(19==i) cout<<"wu"< 對於:int i=9; switch(i) switch中的i的定義相對來說比較有限,i的型別只能是基本型別:int char等 但是if就沒有那麼多限制。 權衡利弊,往往需要自己斟酌使用。利弊相依。呵呵 3樓:亂在長安 條理清楚,**效率高。 4樓:薛擺渡 switch是多分枝選擇結構,是處理多條支路問題的。而if只能在兩項之間選擇,很麻煩! if語句和switch有什麼不同? 5樓:手機使用者 if和switch都是條件判斷語句,在效果上是沒有什麼差別的,而不同,我們可以從效率上來講~ 舉一個很簡單的例子: if(a>b) else 如果將這個例子放在switch 語句中,也並不是不能實現,但是實現起來可能會比較麻煩一些,因為在switch語句中 case中要求的是常量,一般是不能進行邏輯判斷的, 所以這也是if語句優於switch語句的地方! 但是如果您判斷的都是幾個常量的資料,我建議您最好採用switch語句,如下: ***/ 這樣的語句,雖然if語句也是能實現的,但是效能就比switch差的有點遠了求採納 c語言中if else語句與switch語句區別 6樓:一口沒水的枯井 1 兩者本質的區別是 if-else語句更適合於對區間(範圍)的判斷,而switch語句更適合於對離散值的判斷 2 示例 判斷65分到85分之間的學生有哪些適合用if-else語句,因為[65,85]是區間 而判斷一個學生的班級是一班、二班還是三班適合用switch語句,因為一班、二班、三班是離散值 3 擴充套件 所有的switch語句都可以用if-else語句來替換(因為if-else語句只需對每個離散值分別做判斷即可),而並不是所有的if-else語句都可以用switch語句來替換(因為區間裡值的個數是無限的並且switch所接受的值只能是整型或列舉型,所以不能用case來一一列舉)。 7樓:匿名使用者 switch用來根據一個整型值進行多路分支,並且編譯器可以對多路分支進行優化,所以在多路分支時用switch比if..else if .. else結構要效率高。 8樓:段啟中 if else 與 switch 可以相互轉化,不過有時switch看起來比較好理解。有時有用if else比較好,但變數一定是用switch比較好,當變數不確定時用if else就比較好,慢慢學習就掌握了。~~~~ 什麼情況下,switch語句可以替代if語句?
5 9樓:自我程式設計 正常情況兩者通用 條件特別多時,switch比if/else效率高 10樓:匿名使用者 當條件有兩個的時候,可以if代替,當大於等於3個的時候用switch就比較方便了。 if語句,if.else if語句和switch.case語句的區別和分析 11樓:句心後端開發 如果變數a等於1輸出1,等於2輸出2,其他情況輸出3下面的**執行結果是一致的: if ($a==1)else if($a == 2)else------------------- switch($a) 根本區別就是寫的**不一樣(這好像是廢話!),這會影響可讀性 答案是b.主要差別在case上。a中 case 1 2 case不是執行是計算的,而是編譯的時候就確定了數值的。a錯 c中 case 1.0 case只能是整數,不能時浮點數。c錯d中 case c 原因和a一樣,故不能使用變數 可以用巨集定義 d錯 switch case語句中必須得有defaul... 求餘與bai相除不 同,求餘時會拋du棄商保留餘數zhi,並且餘數一定dao是正數,這裡num應該是 版整形。看幾權 個例子吧 100 2 0 100 3 1 101 2 1 3 3 0 負數求餘時先不看符號直接求餘,在把結果加上後面的數 3 2 1 3求餘 1,1 2 1 98 3 1 98求餘 ... 一般這麼寫 swith 變數 default就是當變數的取值不在上面任何專一個case的情況下,語句要做處 屬理,其實也是一種case,只不過就是指 除了指定的幾個case以外的其他情況 while 跳出迴圈的條件 類似這種的 在default中寫輸入語句唄 c語言switch語句中的default...switch語句問題,switchcase語句中必須得有default語句麼
switch語句的問題
C 中switch語句default後如何再重新輸入執行switch,求解