c語言中ifelse語句與switch語句區別

2021-03-21 23:48:58 字數 3657 閱讀 8660

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。條...