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

2021-04-17 21:08:01 字數 3639 閱讀 4295

1樓:匿名使用者

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

2樓:延藹衛採波

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

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

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

3樓:一口沒水的枯井

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

2 示例

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

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

3 擴充套件

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

4樓:匿名使用者

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

5樓:段啟中

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

c語言中switch和if語句那個執行效率更高?

6樓:肥羊

兩個的抄

用法都不一樣,一般if是寫一襲個條件,switch是列舉一些值來判斷,看你需要哪種型別的,這兩個一般沒有說誰效率高的,像樓上說的那種情況,只要是正常人都會選擇用if來寫啦。如果是像那個經典的例子判斷分數段來顯示優良中差的,相信也沒幾個會用if來寫。

7樓:匿名使用者

當然copyif了

因為if判斷的範圍很大,而baiswicth只是簡單的判斷du值舉個zhi例子

int a;

scanf("%d",&a);

if(1可以一次在dao1到1000之間判斷aswicth(a)

{case 1:

case 2:

.......因為case 後面只能用常量表示,如果要確定a就會有很多個case

所以if的執行效率要比swicth高

8樓:流水高山

應該是witch語句!

c語言的switch語句中的條件都可以是什麼型別?

9樓:足壇風行者

c語言的switch語句只能針對基本資料型別使

用,這些型別包括int、char、列舉、bool等。對於其他型別,則必須使用if語句。

在一個 switch 中可以有任意數量的 case 語句。每個 case 後跟一個要比較的值和一個冒號。

case 的 constant-expression 必須與 switch 中的變數具有相同的資料型別,且必須是一個常量或字面量。

擴充套件資料

c語言的switch其他使用規則:

1、當被測試的變數等於 case 中的常量時,case 後跟的語句將被執行,直到遇到 break 語句為止。

2、當遇到 break 語句時,switch 終止,控制流將跳轉到 switch 語句後的下一行。

3、不是每一個 case 都需要包含 break。如果 case 語句不包含 break,控制流將會 繼續 後續的 case,直到遇到 break 為止。

4、一個 switch 語句可以有一個可選的 default case,出現在 switch 的結尾。default case 可用於在上面所有 case 都不為真時執行一個任務。default case 中的 break 語句不是必需的。

10樓:夜禮服假面

switch用在程式設計中,如c語言中它經常跟case一起使用,是一個判斷選擇**。其功能就是控制業務流程流轉的。

switch語句,即「切換」語句;case即「情況」。

switch語句的語法如下(switch,case和default是關鍵字):

switch ( controllingexpression )

遵守switch語句規則

switch語句非常有用,但在使用時必須謹慎。所寫的任何switch語句都必須遵循以下規則:

只能針對基本資料型別使用switch,這些型別包括int、char、列舉、bool等。對於其他型別,則必須使用if語句。

switch()的引數型別不能為實型 。

case標籤必須是常量表示式(constantexpression),如42或者"42"。

case標籤必須是惟一性的表示式;也就是說,不允許兩個case具有相同的值。

c語言switch應用例子:

例一:#include

int main()}

11樓:匿名使用者

只有可數型別:整型、字元、布林和列舉型

12樓:匿名使用者

可以是整型、字元型、布林型和列舉型,希望對你有所幫助

13樓:匿名使用者

char型和int型本質上都是一樣的。char型和int型

14樓:節盈尾豔蕙

c語言的switch語句中的條件可以是任意型別,但是由於當是bool型別的時候會出現不可預料的迴圈,所以一般不用bool型別

c語言if和switch一起用 5

15樓:匿名使用者

當程式進入第一個if語句時,執行完後出來,會繼續判斷一下的if語句,要是滿足條件,繼續進入,以此類推,如果是else if語句 當程式進入第一個滿足條件的語句塊時,就直接跳到最後,不會再判斷其他的else if語句,儘管有些else if語句是滿足條件的,但程式是不會在進入判斷的

16樓:匿名使用者

你舉一下錯誤輸入和輸出。

看不出這兩個**什麼區別。

c語言中應用switch語句程式設計輸入

int n switch n case 1 printf 今天襲是週一 break case 2 printf 今天是週二 break case 3 printf 今天是週三 break case 4 printf 今天是週四 break case 5 printf 今天是週五 break case...

c語言中執行完switch語句中的default語句後是跳出

先計算switch括號後面表示式的值。並逐個與其後的常量表示式值相比較,當表示式的值與某個常量表示式的值相等時,即執行其後的語句,如若後面有break語句,則直接跳出。如果沒有break語句,然後不再進行判斷,繼續執行後面的case後的語句。直到遇到break語句跳出。如表示式的值與所有case後的...

c語言中t和 t分別代表什麼,C語言中 t a i a i a j a j t 代表什麼意思啊 謝謝了

t 其實就是 t 先取 t,然後t這個指標再後移一位。t 就是先取 t,把 t這個值再 就是 t這個值自增1。t 是取值後指標自增,t 是取值後把取出來的值自增。c語言是一種計算機程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。它由美國貝爾研究所的d.m.ritchie於1972年推出,...