“否則”是否比“Switch()case”更快?我是個前帕斯卡人,目前正在學習C#。我的問題如下:下面的代碼是否比切換更快?int a = 5;if (a == 1){
....}else if(a == 2){
....}else if(a == 3){
....}else if(a == 4){
....}else
....開關(guān):int a = 5;switch(a){
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;}哪個更快?我問這個問題,因為我的程序有一個類似的結(jié)構(gòu)(很多,很多其他的if語句)。我應(yīng)該把它們變成開關(guān)嗎?
3 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
編輯:

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
結(jié)果表明,開關(guān)語句的執(zhí)行速度比if-否則-if梯子快.這是因為編譯器能夠優(yōu)化開關(guān)語句。在if-否則-if梯子的情況下,代碼必須按照程序員確定的順序處理每個if語句。但是,由于開關(guān)語句中的每一種情況都不依賴于前面的情況,所以編譯器能夠重新排序測試,從而提供最快的執(zhí)行。
- 3 回答
- 0 關(guān)注
- 856 瀏覽
添加回答
舉報
0/150
提交
取消