if語句和switch有什么不同
if和switch都是條件判斷語句,在效果上是沒有什么差別的,而不同,我們可以從效率上來講~ 舉一個很簡單的例子: if(A>B) {A=B;} else {B=A; } 如果將這個例子放在switch 語句中,也并不是不能實現,但是實現起來可能會比較麻煩一些,因為在switch語句中 case中要求的是常量,一般是不能進行邏輯判斷的, 所以這也是if語句優于switch語句的地方! 但是如果您判斷的都是幾個常量的數據,我建議您最好采用switch語句,如下: switch(A) { case:xxxx ///程序代碼 break; case:xxxxxx ///程序代碼 break; } http://** 這樣的語句,雖然if語句也是能實現的,但是性能就比switch差的有點遠了
C語言中if和switch有什么區別
switch( 表達式)//這個地方不能加分號,表達式必須是字符型或整型
{ case E1 : 語句組 1; //case 與E1(即常量)之間用空格分隔
case E2 : 語句組 2;// case后的常量不能相同且常量后必須加冒號
…….
case En : 語句組 n;
[default: 語句組 ;]
}
執行過程:
一、計算
二、找case
三、從找到的case開始,往下全部執行
四、若沒找到case,則從default開始往下全部執行,
若沒default則結束switch語句。
if是選擇結構,有三個形式,它們執行是條件成立只會選一個執行。
第一個:if (表達式)
語句;
第二個:if (表達式)
語句1;
else
語句2;
第三個:
if ( 表達式1 )
語句1;
else if (表達式2 )
語句2;
else if (表達式3 )
語句3;
…。
[ else
語句; ]
C語言中if 和switch 區別
if 直接是選擇的意思
如果(),執行()
否則,()
永遠是否則后面沒有條件,而且if 和 else 成對出現
switch 可以是多項選擇且直接跳轉
switch a : A
b : B
c : C
等等
這兩個差很多~
你可以再仔細看看書
能用到SWITCH 語句的話,用IF 就很繁瑣
但是簡單的選擇用IF 比較好了
淺談選擇結構if語句和switch語句的區別
1.選擇結構if語句格式及其使用
A:if語句的格式:
if(比較表達式1) {
語句體1;
}else if(比較表達式2) {
語句體2;
}else if(比較表達式3) {
語句體3;
}
else {
語句體n+1;
}
B:執行流程:
首先計算比較表達式1看其返回值是true還是false,
如果是true,就執行語句體1,if語句結束。
如果是false,接著計算比較表達式2看其返回值是true還是false,
如果是true,就執行語句體2,if語句結束。
如果是false,接著計算比較表達式3看其返回值是true還是false,
如果都是false,就執行語句體n+1。
C:注意事項:最后一個else可以省略,但是建議不要省略,可以對范圍外的錯誤值提示
2.選擇結構switch語句格式及其使用
A:switch格式:
switch(表達式) {
case 值1:
語句體1;
break;
case 值2:
語句體2;
break;
…
default:
語句體n+1;
break;
}
B:switch語句的格式解釋
(基本數據類型,只要能提升為int的都可以,引用數據類型中的枚舉(JDK1.5)和String(JDK1.7))
C:執行流程
先計算表達式的值
然后和case后面的匹配,如果有就執行對應的語句,否則執行default控制的語句
3:總結switch語句和if語句的各自使用場景
switch建議判斷固定值的時候用
if建議判斷區間或范圍的時候用
*用switch能做的,用if都能做,單反過來則不行
if判斷語句和switch語句哪個表示更快呢
if語句每次都需要判斷,而switch則只判斷一次,所以switch快,但也要看情況,一般5個選項(包括default)的情況下,switch和if/else if相同。低于5個選項if快,高于5給選項switch快。
1 兩者本質的區別是if語句更適合于對區間(范圍)的判斷,而switch語句更適合于對離散值的判斷。
2 示例
判斷65分到85分之間的學生有哪些適合用if語句,因為[65,85]是區間。而判斷一個學生的班級是一班、二班還是三班適合用switch語句,因為一班、二班、三班是離散值。
3 擴展
所有的switch語句都可以用if語句來替換(因為if語句只需對每個離散值分別做判斷即可),而并不是所有的if語句都可以用switch語句來替換(因為區間里值的個數是無限的并且switch所接受的值只能是整型或枚舉型,所以不能用case來一一列舉)。
轉載請注明出處華閱文章網 » if語句與switch