不良代码展示-很多判断的写法-给新手
来源:互联网 发布:软件项目质量计划 编辑:程序博客网 时间:2024/05/16 11:55
原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6801695
今天Review代码,看到了一串很“漂亮”的代码。这里把代码改了一下,贴给新手们,作为一个教训吧。
漂亮的意思,是有很工整的缩进。
package com.hoperun;import android.view.View;import android.view.View.OnClickListener;/** * 数字键盘监听器 */public class NumListener implements OnClickListener {public void onClick(View v) {if (v.equals(btnNum0)) {//按键0} else { if (v.equals(btnNum1)) {//按键1} else {if (v.equals(btnNum2)) {//按键2} else {if (v.equals(btnNum3)) {//按键3} else {if (v.equals(btnNum4)) {//按键4} else {if (v.equals(btnNum5)) {//按键5} else {if (v.equals(btnNum6)) {//按键6} else {if (v.equals(btnNum7)) {//按键7} else {if (v.equals(btnNum8)) {//按键8} else {if (v.equals(btnNum9)) {//按键9} else {if (v.equals(btnNumAdd)) {//按键加法} else {if (v.equals(btnNumSubtraction)) {//按键减法} else {if (v.equals(btnNumEquals)) {//按键等于}}}}}}}}}}}}} }}
其实,这么写是完全没有必要的。这么多的else,其实可以叠在else if里面,如下:
package com.hoperun;import android.view.View;import android.view.View.OnClickListener;/** * 数字键盘监听器 */public class NumListener implements OnClickListener {public void onClick(View v) {if (v.equals(btnNum0)) {//按键0} else { if (v.equals(btnNum1)) {//按键1} else if (v.equals(btnNum2)) {//按键2} else if (v.equals(btnNum3)) {//按键3} else if (v.equals(btnNum4)) {//按键4} else if (v.equals(btnNum5)) {//按键5} else if (v.equals(btnNum6)) {//按键6} else if (v.equals(btnNum7)) {//按键7} else if (v.equals(btnNum8)) {//按键8} else if (v.equals(btnNum9)) {//按键9} else if (v.equals(btnNumAdd)) {//按键加法} else if (v.equals(btnNumSubtraction)) {//按键减法} else if (v.equals(btnNumEquals)) {//按键等于}}}
其实这个效率不高。其实传入的参数View,就是被按住的那个按钮,不需要用equals判断,直接用“ == ”来判断就可以了。
当然,最好的还不是用“ == ”,而是用switch - case.
package com.hoperun;import android.view.View;import android.view.View.OnClickListener;/** * 数字键盘监听器 */public class NumListener implements OnClickListener {public void onClick(View v) {switch (v.getId()) {case R.id.key_0://按键0break;case R.id.key_1://按键1break;case R.id.key_2://按键2break;case R.id.key_3://按键3break;case R.id.key_4://按键4break;case R.id.key_5://按键0break;case R.id.key_6://按键6break;case R.id.key_7://按键7break;case R.id.key_8://按键8break;}}}
仅给新人学习,高手勿喷。
- 不良代码展示-很多判断的写法-给新手
- 不良代码展示-很多判断的写法-给新手
- 不良代码展示-Android排序的实现
- 不良代码展示-String的循环拼接
- 不良代码展示-不要用数组循环判断等于的方式,来判断一个对象是否在一个集合内
- 不良代码展示-高耦合度代码的例子
- 不良代码展示-Activity中使用线程的例子
- 不良代码展示-Android中的位运算的例子(二)
- 不良代码展示-父类中可以抽象出子类的行为
- 不良代码展示-尽量强制转换减少toString()的调用
- 不良代码展示-尽量强制转换减少toString()的调用
- 不良代码展示-Activity中使用线程的例子
- 不良代码展示-两个数组找不同
- 不良代码展示-Android中List和数组的例子(一)
- 不良代码展示-Android中List和数组的例子(二)
- 不良代码展示-Android画面UI中的线程约束
- 常见几种导致内存泄露的不良写法
- jsp页面的循环、判断、截取列表的代码写法
- cocos2d 警惕 stopAllActions 出错 陷阱 解决办法
- 用ultraEdit打造自己的Objective-C IDE for Windows
- 三角形
- 简单的GCC语法: 弄清gcc test.c 与 gcc -c test.c 的差别
- MFC学习第二天心得!(关于系统队列、任务队列、消息队列)
- 不良代码展示-很多判断的写法-给新手
- 倒萨
- hdu 1215 七夕节
- wxWidgets->使用wxFormBuild+CodeBlocks编写wxWidgets工程
- KMP 模式匹配算法原理分析
- 采用JNI方法利用opengl es 1.x在android上绘图
- c++面向对象编程必备“良方”
- 您的账户已被系统锁定,如有疑问请发邮件到:webmaster@csdn.net
- 经典字符串HASH函数