一直說想要研究底層原理,把知識學(xué)深一些,原來真的像初中的物理老師說的那樣,把基礎(chǔ)的原理都學(xué)會,就能做難的題目,高難度題目的框架都是靠簡單的原理搭建的。
進入正文
區(qū)別:
switch (i)
{
case 0:
j=0;
break;
case 1:
j=1;
break;
case 2:
j=2;
break;
case 3:
j=3;
break;
}
1、當(dāng)分支較多時,當(dāng)時用switch的效率是很高的。因為switch是隨機訪問的,就是確定了選擇值之后直接跳轉(zhuǎn)到那個特定的分支,但是if。。else是遍歷所以得可能值,知道找到符合條件的分支,如此看來switch的效率確實比ifelse要高的多。
2、switch...case只能處理case為常量的情況,對非常量的情況是無能為力的。例如 if (a > 1 && a < 100),是無法使用switch...case來處理的。所以,switch只能是在常量選擇分支時比ifelse效率高,但是ifelse能應(yīng)用于更多的場合,ifelse比較靈活。
3.switch不加break為什么具有直通性?
用break的作用就是跳出switch,不執(zhí)行其他的case,如果不加就一直走下去,一直等到下一個break后跳出,如果一直沒有break,就要等到switch結(jié)束后退出。