c語言中if和switch有什麼區別

2021-05-17 15:48:16 字數 3590 閱讀 7382

1樓:

if和switch的主要區別如下:

1)if的括號內的表示式可以分別是布林型別的合法表示式、可以是所有大於0的正整數為true,反之為小於等於0的正整數為false、可以是常量、列舉;而switch括號內也符合前面if提到的外,就是當圓括號內為正整數只能是0或1,其它的正整數屬於 default範圍。這點可以看如下**:

switch (2)  // 除了0和1的其它正整數2)儘管if括號內也支援常量、列舉但也是有前提的那就是常量或列舉必須要顯式給出相應的數值。而switch則不必;

3)switch適合處理判斷分支較多的情況下(**可讀性好),而if適合處理判斷分支較少的情況下(反之**可讀性差,容易出現漏判或重複判斷)。

2樓:匿名使用者

看情況。

if判斷條件,處理邏輯表示式。

switch 通常處理算術表示式,或字元,當它等於什麼什麼,轉向做什麼。switch相當開關

如果「比較整數」,i1 是否大於 i2, 當然用if如果決定轉向,例如 i=1 畫直線,i=2 畫曲線,i=3 畫圓,i=4 畫虛線直線, i=5 畫虛線曲線, i=6 畫長方形 i=其他值 返回重選

這當然用switch,switch 執行快。

3樓:洛雨曦

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

語句; ]

4樓:百an居

if 直接是選擇的意思

如果(),執行()

否則,()

永遠是否則後面沒有條件,而且if 和 else 成對出現switch 可以是多項選擇且直接跳轉

switch a : a

b : b

c : c

等等這兩個差很多~

你可以再仔細看看書

能用到switch 語句的話,用if 就很繁瑣但是簡單的選擇用if 比較好了

希望能幫到你哦,請您採納,剛剛玩,在做任務

5樓:匿名使用者

使用的語句不一樣呀,if的條件更多一些,switch後面必須有case 而且cas後面必須是規定的三種型別的資料!

6樓:匿名使用者

if 可以代替switch使用,而switch不一定能代替

在效率方面,條件多的時候用switch比if好

7樓:樓三龍驪穎

樓上的if

只能判斷兩種嗎?

那我問你

if(a=="a")

else

if(a=="b")

else

if(a=="c")

這個你怎麼說

不懂別裝懂好不

switch語句只能根據一個變數的值進行轉移,但if語句沒有這樣的限制。當然,判斷一個條件比判斷一堆條件速度要快的多。

個人覺得生成的彙編的**,switch生成的是一系列的條件判斷和轉移指令,但if語句沒有這樣做

c語言中switch和if的適用方面有什麼區別?

8樓:匿名使用者

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語句則更好。

9樓:延藹衛採波

switch語句只能根copy據一個變數的值bai進行轉移,但if語句沒du有這樣的限制。當然,判斷一zhi個條件比dao判斷一堆條件速度要快的多。

個人覺得生成的彙編的**,switch生成的是一系列的條件判斷和轉移指令,但if語句沒有這樣做

c語言中,a==b與b==a有什麼區別麼?

10樓:匿名使用者

沒區別,==是恆等於,不存在賦值問題,單純比較,怎麼寫都行,但是=號就不一樣了,是右邊賦值給左邊

11樓:育知同創教育

寫法幾乎沒有什麼區別。前後順序不影響的。

12樓:匿名使用者

雙等號 是比較運算子, 沒有什麼區別

13樓:幻世封神

沒什麼區別,看個人習慣了

請採納吧

14樓:研凌工控電腦

無區別,這和只有一個=號不同

c語言中if else語句與switch語句區別

15樓:一口沒水的枯井

1 兩者本質的區別是 if-else語句更適合於對區間(範圍)的判斷,而switch語句更適合於對離散值的判斷

2 示例

判斷65分到85分之間的學生有哪些適合用if-else語句,因為[65,85]是區間

而判斷一個學生的班級是一班、二班還是三班適合用switch語句,因為一班、二班、三班是離散值

3 擴充套件

所有的switch語句都可以用if-else語句來替換(因為if-else語句只需對每個離散值分別做判斷即可),而並不是所有的if-else語句都可以用switch語句來替換(因為區間裡值的個數是無限的並且switch所接受的值只能是整型或列舉型,所以不能用case來一一列舉)。

16樓:匿名使用者

switch用來根據一個整型值進行多路分支,並且編譯器可以對多路分支進行優化,所以在多路分支時用switch比if..else if .. else結構要效率高。

17樓:段啟中

if else 與 switch 可以相互轉化,不過有時switch看起來比較好理解。有時有用if else比較好,但變數一定是用switch比較好,當變數不確定時用if else就比較好,慢慢學習就掌握了。~~~~

c語言中switch結構的使用,C語言中switch結構的使用

因為case後面不能接範圍,也就是說case後面是一個確實固定的常量.用下面的方法比較好,include int main 你可以先把範圍用字母或常量代替 再用switch語句 include void main else printf score scanf d s system pause 請問...

C語言中的switch語句中default放在最前面和最後面有什麼區別

c語言中的copyswitch語句中default放在最前面和bai最後面沒有區別du?switch語句 zhi switch expr 擴充套件資料switch語句的表達dao include voidprint day intday intmain 最前面case語句不能執行 後面的case不能...

在c語言中的switch語句裡。如果default放在了ca

如果每條case語句和default語句後都加了break 語句,那麼default的放置與位置沒有關係。依靠switch 裡的條件判斷應該執行哪條語句。c語言switch語句中的default放在前面是不是先執行他後面的語句,再執行case語句 並不是這樣的。抄 switch語句的格式為 襲 sw...