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

時間 2021-08-11 17:51:07

1樓:布依秋

總體來說,if語句由於在英語字面上意思比較直觀,就是“如果”,所以比較容易理解。就是對“如果”情況的判斷和處理。 而“switch”的功能其實和if差不多,但是比較容易出錯的地方就是,在switch語句中,如果在分支中不加break。

容易造成邏輯的錯誤。新手很容易犯這個錯誤

2樓:湯贊悅

if 用於單一的是非條件判斷 if else 用於兩種情況的條件判斷 switch: case 用於多種情況的條件判斷,這些情況是並列關係。 多個if連用 用於連環條件判斷,這些條件是串聯關係。

前一個if的成立,是後一個if進行判斷的必須條件。

3樓:冷煙

樓上的 if 只能 判斷兩種嗎? 那我問你 if(a=="a") else if(a=="b") else if(a=="c") 這個你怎麼說 不懂別裝懂好不 switch語句只能根據一個變數的值進行轉移,但if語句沒有這樣的限制。當然,判斷一個條件比判斷一堆條件速度要快的多。

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

4樓:手機使用者

if只能判斷2種情況的發生,既是與不是 如if(ch=='a')printf("ch is 'a'."); else printf("ch is not 'a'."); 而switch是可以判斷許多種情況的發生.

如switch(ch) 等等,這是最本質的區別.

5樓:長島的雪丶

if...else比 switch()更強大,比如switch()中case不能為字串但是if裡面的條件什麼都可以,所以if..else可以替換switch(),但是 反過來就不可以

6樓:笑懂

if語句只能實現兩條分支 switch能實現多條分支

c語言中if else語句與switch語句的區別在**?

7樓:一口沒水的枯井

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

值的判斷

2 示例屬

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

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

3 擴充套件

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

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

8樓:肥羊

兩個的抄

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

9樓:匿名使用者

當然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高

10樓:流水高山

應該是witch語句!

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

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

c語言中和有什么區別,c語言中「 」和「 」有什麼區別?

c語言中,表示賦值 如a b,表示把b的值賦給a 表示等於 如a b,表示a與b相等!等號是 賦值號是 int a 1,是把1賦值給a,a 1,就是a是常值1 有區別 是 賦值語句,用來判斷是否相等 如 if x 10 x如果等於10 則括號裡的值是1執行,x不等於10 則括號裡的值是0 不執行如果...

c語言中double和float有什么用法上的區別

平常是沒有區別的,float是單精度浮點數,double是雙精度的,區別就是double型別比float型別克表示的資料範圍更大,當你的資料精度要求很高的時候,float型別就不好用了,應該用double型別。在具體程式設計的時候,用法上沒什麼區別的。float是單精度,double是雙精度,區別在...