不良代码展示-很多判断的写法-给新手

来源:互联网 发布:硕士双录取 知乎 编辑:程序博客网 时间:2024/05/16 18:35

原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6801695

今天Review代码,看到了一串很“漂亮”的代码。这里把代码改了一下,贴给新手们,作为一个教训吧。
漂亮的意思,是有很工整的缩进。

[java] view plaincopy
  1. package com.hoperun;  
  2.   
  3. import android.view.View;  
  4. import android.view.View.OnClickListener;  
  5.   
  6. /** 
  7.  * 数字键盘监听器 
  8.  */  
  9. public class NumListener  implements OnClickListener {  
  10.   
  11.     public void onClick(View v) {  
  12.   
  13.         if (v.equals(btnNum0)) {  
  14.             //按键0  
  15.         } else {   
  16.             if (v.equals(btnNum1)) {  
  17.                 //按键1  
  18.             } else {  
  19.                 if (v.equals(btnNum2)) {  
  20.                     //按键2  
  21.                 } else {  
  22.                     if (v.equals(btnNum3)) {  
  23.                         //按键3  
  24.                     } else {  
  25.                         if (v.equals(btnNum4)) {  
  26.                             //按键4  
  27.                         } else {  
  28.                             if (v.equals(btnNum5)) {  
  29.                                 //按键5  
  30.                             } else {  
  31.                                 if (v.equals(btnNum6)) {  
  32.                                     //按键6  
  33.                                 } else {  
  34.                                     if (v.equals(btnNum7)) {  
  35.                                         //按键7  
  36.                                     } else {  
  37.                                         if (v.equals(btnNum8)) {  
  38.                                             //按键8  
  39.                                         } else {  
  40.                                             if (v.equals(btnNum9)) {  
  41.                                                 //按键9  
  42.                                             } else {  
  43.                                                 if (v.equals(btnNumAdd)) {  
  44.                                                     //按键加法  
  45.                                                 } else {  
  46.                                                     if (v.equals(btnNumSubtraction)) {  
  47.                                                         //按键减法  
  48.                                                     } else {  
  49.                                                         if (v.equals(btnNumEquals)) {  
  50.                                                             //按键等于  
  51.                                                         }  
  52.                                                     }  
  53.                                                 }  
  54.                                             }  
  55.                                         }  
  56.                                     }  
  57.                                 }  
  58.                             }  
  59.                         }  
  60.                     }  
  61.                 }  
  62.             }  
  63.         }   
  64.           
  65.           
  66.     }  
  67.   
  68. }  

其实,这么写是完全没有必要的。这么多的else,其实可以叠在else if里面,如下:


[java] view plaincopy
  1. package com.hoperun;  
  2.   
  3. import android.view.View;  
  4. import android.view.View.OnClickListener;  
  5.   
  6. /** 
  7.  * 数字键盘监听器 
  8.  */  
  9. public class NumListener  implements OnClickListener {  
  10.   
  11.     public void onClick(View v) {  
  12.   
  13.         if (v.equals(btnNum0)) {  
  14.             //按键0  
  15.         } else { if (v.equals(btnNum1)) {  
  16.             //按键1  
  17.         } else if (v.equals(btnNum2)) {  
  18.             //按键2  
  19.         } else if (v.equals(btnNum3)) {  
  20.             //按键3  
  21.         } else if (v.equals(btnNum4)) {  
  22.             //按键4  
  23.         } else if (v.equals(btnNum5)) {  
  24.             //按键5  
  25.         } else if (v.equals(btnNum6)) {  
  26.             //按键6  
  27.         } else if (v.equals(btnNum7)) {  
  28.             //按键7  
  29.         } else if (v.equals(btnNum8)) {  
  30.             //按键8  
  31.         } else if (v.equals(btnNum9)) {  
  32.             //按键9  
  33.         } else if (v.equals(btnNumAdd)) {  
  34.             //按键加法  
  35.         } else if (v.equals(btnNumSubtraction)) {  
  36.             //按键减法  
  37.         } else if (v.equals(btnNumEquals)) {  
  38.             //按键等于  
  39.         }  
  40.           
  41.     }  
  42.   
  43. }  


其实这个效率不高。其实传入的参数View,就是被按住的那个按钮,不需要用equals判断,直接用“ == ”来判断就可以了。

当然,最好的还不是用“ == ”,而是用switch - case.

[java] view plaincopy
  1. package com.hoperun;  
  2.   
  3. import android.view.View;  
  4. import android.view.View.OnClickListener;  
  5.   
  6. /** 
  7.  * 数字键盘监听器 
  8.  */  
  9. public class NumListener  implements OnClickListener {  
  10.   
  11.     public void onClick(View v) {  
  12.   
  13.         switch (v.getId()) {  
  14.             case R.id.key_0:  
  15.                 //按键0  
  16.                 break;  
  17.             case R.id.key_1:  
  18.                 //按键1  
  19.                 break;  
  20.             case R.id.key_2:  
  21.                 //按键2  
  22.                 break;  
  23.             case R.id.key_3:  
  24.                 //按键3  
  25.                 break;  
  26.             case R.id.key_4:  
  27.                 //按键4  
  28.                 break;  
  29.             case R.id.key_5:  
  30.                 //按键0  
  31.                 break;  
  32.             case R.id.key_6:  
  33.                 //按键6  
  34.                 break;  
  35.             case R.id.key_7:  
  36.                 //按键7  
  37.                 break;  
  38.             case R.id.key_8:  
  39.                 //按键8  
  40.                 break;  
  41.         }  
  42.     }  
  43.   
  44. }  

仅给新人学习,高手勿喷。
0 0
原创粉丝点击