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語言中if和switch區別,C語言中if else語句與switch語句的區別在哪裡?
風若遠去何人留 switch語句,可讀性更好,整體流程看起來清晰明確。if語句適應性更強,可以處理更多的情況。所有的switch語句都可以寫成if的形式,比如switch a 可以寫作 if a b case b else if a c case celse default.但是switch 語句,...
c語言中switch結構的使用,C語言中switch結構的使用
秋風依舊好 因為case後面不能接範圍,也就是說case後面是一個確實固定的常量.用下面的方法比較好,include int main 你可以先把範圍用字母或常量代替 再用switch語句 資料 include void main else printf score scanf d s system...
c語言中執行完switch語句中的default語句後是跳出
先計算switch括號後面表示式的值。並逐個與其後的常量表示式值相比較,當表示式的值與某個常量表示式的值相等時,即執行其後的語句,如若後面有break語句,則直接跳出。如果沒有break語句,然後不再進行判斷,繼續執行後面的case後的語句。直到遇到break語句跳出。如表示式的值與所有case後的...