取代 switch.case的特殊優化

今天看到這樣一個問題:

        如何將下面這一段Android代碼優化成一句代碼實現。

        if (gridnumber == 0) {
gsmsignal.setImageResource(R.drawable.gsmsignal_2);
} else if (gridnumber == 1) {
gsmsignal.setImageResource(R.drawable.gsmsignal_3);
} else if (gridnumber == 2) {
gsmsignal.setImageResource(R.drawable.gsmsignal_4);
} else if (gridnumber == 3) {
gsmsignal.setImageResource(R.drawable.gsmsignal_5);
} else if (gridnumber == 4) {
gsmsignal.setImageResource(R.drawable.gsmsignal_6);
} else if (gridnumber == 5) {
gsmsignal.setImageResource(R.drawable.gsmsignal_7);
} else if (gridnumber == 6) {
gsmsignal.setImageResource(R.drawable.gsmsignal_8);
} else {
gsmsignal.setImageResource(R.drawable.gsmsignal_1);
}
 

一般情況下,大家都會習慣性的使用Switch case 或者是if else 。

不過試着用另外一種方式寫,是不是應該會好一點呢:

int[] res = new int[]{.......};//資源id 如: R.drawable.gsmsignal_1

gsmsignal.setImageResource(res[gridnumber]);

這樣的話減少了不必要的代碼,缺點就是資源文件已經寫死。

    一記。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章