1樓:一口沒水的枯井
1 兩者本質的區別是 if-else語句更適合於對區間(範圍)的判斷,而switch語句更適合於對離散值的判斷
2 示例
判斷65分到85分之間的學生有哪些適合用if-else語句,因為[65,85]是區間
而判斷一個學生的班級是一班、二班還是三班適合用switch語句,因為一班、二班、三班是離散值
3 擴充套件
所有的switch語句都可以用if-else語句來替換(因為if-else語句只需對每個離散值分別做判斷即可),而並不是所有的if-else語句都可以用switch語句來替換(因為區間裡值的個數是無限的並且switch所接受的值只能是整型或列舉型,所以不能用case來一一列舉)。
2樓:匿名使用者
switch用來根據一個整型值進行多路分支,並且編譯器可以對多路分支進行優化,所以在多路分支時用switch比if..else if .. else結構要效率高。
3樓:段啟中
if else 與 switch 可以相互轉化,不過有時switch看起來比較好理解。有時有用if else比較好,但變數一定是用switch比較好,當變數不確定時用if else就比較好,慢慢學習就掌握了。~~~~
c語言中switch和if的適用方面有什麼區別?
4樓:匿名使用者
switch語句,可讀性更好,整體流程看起來清晰明確。
if語句適應性更強,可以專處理更多的情屬況。
所有的switch語句都可以寫成if的形式,比如switch(a)
可以寫作
if(a==b)//case b
else if(a==c) // case celse //default.
但是switch 語句,僅能夠處理整型數值,即switch()括號中的判斷的值,必須是整型的,而且每個case後面跟的值,也必須是整型的。
另外,對於大規模的連續數值,比如if(a>=1 && a<=100) 這樣的語句,要用switch則需要連續寫100個case,這種情況下,switch語句也是不適用的。
總體來說,對於雜湊的整型資料,用switch語句更清晰明確,而對於其它情況,if語句則更好。
5樓:延藹衛採波
switch語句只能根copy據一個變數的值bai進行轉移,但if語句沒du有這樣的限制。當然,判斷一zhi個條件比dao判斷一堆條件速度要快的多。
個人覺得生成的彙編的**,switch生成的是一系列的條件判斷和轉移指令,但if語句沒有這樣做
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來一一列舉)。
c語言中if和switch有什麼區別?
7樓:
if和switch的主要區別如下:
1)if的括號內的表示式可以分別是布林型別的合法表示式、可以是所有大於0的正整數為true,反之為小於等於0的正整數為false、可以是常量、列舉;而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下**:
switch (2) // 除了0和1的其它正整數2)儘管if括號內也支援常量、列舉但也是有前提的那就是常量或列舉必須要顯式給出相應的數值。而switch則不必;
3)switch適合處理判斷分支較多的情況下(**可讀性好),而if適合處理判斷分支較少的情況下(反之**可讀性差,容易出現漏判或重複判斷)。
8樓:匿名使用者
看情況。
if判斷條件,處理邏輯表示式。
switch 通常處理算術表示式,或字元,當它等於什麼什麼,轉向做什麼。switch相當開關
如果「比較整數」,i1 是否大於 i2, 當然用if如果決定轉向,例如 i=1 畫直線,i=2 畫曲線,i=3 畫圓,i=4 畫虛線直線, i=5 畫虛線曲線, i=6 畫長方形 i=其他值 返回重選
這當然用switch,switch 執行快。
9樓:洛雨曦
switch( 表示式)//這個地方不能加分號,表示式必須是字元型或整型
執行過程:
一、計算
二、找case
三、從找到的case開始,往下全部執行
四、若沒找到case,則從default開始往下全部執行,若沒default則結束switch語句。
if是選擇結構,有三個形式,它們執行是條件成立只會選一個執行。
第一個:if (表示式)
語句;第二個:if (表示式)
語句1;
else
語句2;
第三個:
if ( 表示式1 )
語句1;
else if (表示式2 )
語句2;
else if (表示式3 )
語句3;
…...
[ else
語句; ]
10樓:百an居
if 直接是選擇的意思
如果(),執行()
否則,()
永遠是否則後面沒有條件,而且if 和 else 成對出現switch 可以是多項選擇且直接跳轉
switch a : a
b : b
c : c
等等這兩個差很多~
你可以再仔細看看書
能用到switch 語句的話,用if 就很繁瑣但是簡單的選擇用if 比較好了
希望能幫到你哦,請您採納,剛剛玩,在做任務
11樓:匿名使用者
使用的語句不一樣呀,if的條件更多一些,switch後面必須有case 而且cas後面必須是規定的三種型別的資料!
12樓:匿名使用者
if 可以代替switch使用,而switch不一定能代替
在效率方面,條件多的時候用switch比if好
13樓:樓三龍驪穎
樓上的if
只能判斷兩種嗎?
那我問你
if(a=="a")
else
if(a=="b")
else
if(a=="c")
這個你怎麼說
不懂別裝懂好不
switch語句只能根據一個變數的值進行轉移,但if語句沒有這樣的限制。當然,判斷一個條件比判斷一堆條件速度要快的多。
個人覺得生成的彙編的**,switch生成的是一系列的條件判斷和轉移指令,但if語句沒有這樣做
c語言中的for語句和ni語句,C語言中的for語句和n i 語句
n 這種形式是字尾自增1運算,表示先使用n值,然後n n 1自增1 i這種形式是字首自增1運算,表示先對i進行i i 1自增1,然後再使用i值 如果是單獨執行這樣的語句,兩者沒有區別,如 for i 0 i 輸出0 9 與for n 0 n 輸出0 9 這兩者都會迴圈10次,沒有差別。而下面的語句 ...
c語言中語句m n什麼意思,C語言中語句m n什麼意思
m相當於m m 1,再用到m的值 而n 相當於 先用到n的值,再進行 m m 1 當然,這個是指在同一個表示式內。對於你的這道題,a m 1 n m n 這是,判斷成立,執行 m,所以,表示式以後,n 1c n,所以c 0 這是複合賦值運算。m n 相當於m m n 即,從m與n相減,然後再將結果儲...
C語言中語句是什麼意思,c語言中!是什麼意思?
我猜你說的是三目運算 例如c a b?a b 這個就是等同於 if a b else 對於條抄 件表示式b x y,先計算 襲條件b,然後進行判bai斷。如果b的值為true,計算dux的值,運算zhi結果為x的值 否dao則,計算y的值,運算結果為y的值。一個條件表示式絕不會既計算x,又計算y。條...