C語言中if和switch區別,C語言中if else語句與switch語句的區別在哪裡?

時間 2021-08-11 17:50:57

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樓:幻☆天芒

if和switch都是多分支語句。基本上的通用的,看條件的多少來判斷選用哪一種。

3樓:

可以完全等效的用2種語法改寫,只是不同的情況下,用不同的語法更簡潔易讀而已

4樓:匿名使用者

if...else..成對的處理雙分支結構的問題很方便,switch處理多分支,互相轉化沒問題的。。。

5樓:匿名使用者

if 直接是選擇的意思

如果(),執行()

否則,()

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

switch a : a

b : b

c : c

等等這兩個差很多~

你可以再仔細看看書

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

6樓:匿名使用者

未必switch裡面,必須是單個變數,而不能是表示式

準確來說,if的應用比switch廣泛,可以用switch的,都可以用if,但反之,不行

7樓:公羊乃

switch與if有一點明顯的區別就是

if(這裡是條件判斷語句,包括==,>=,<=,<,>..)switch(xx)

你可以看情況選擇是否選擇if還是switch

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

8樓:一口沒水的枯井

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有什麼區別?

9樓:布依秋

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

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

10樓:湯贊悅

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

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

11樓:冷煙

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

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

12樓:手機使用者

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

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

13樓:長島的雪丶

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

14樓:笑懂

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

分別用if和switch編同一道c語言程式

15樓:段幹增嶽能俏

直接用switch不可行,其他語言支援,但c不支援,可以轉換一下,將範圍控制的適合列舉才行:

switch(i/100000)

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

布依秋 總體來說,if語句由於在英語字面上意思比較直觀,就是 如果 所以比較容易理解。就是對 如果 情況的判斷和處理。而 switch 的功能其實和if差不多,但是比較容易出錯的地方就是,在switch語句中,如果在分支中不加break。容易造成邏輯的錯誤。新手很容易犯這個錯誤 湯贊悅 if 用於單...

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

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

c語言中 》和 的區別,c語言中 a a 和 a 的區別

1 指向不同 一般情況下用 只需要宣告一個結構體。格式是,結構體型別名 結構體名。然後用結構體名加 加域名就可以引用域 了。因為自動分配了結構體的記憶體。如同 int a 一樣。而用 則要宣告一個結構體的指標,還要手動開闢一個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用 正確引用。否...