您的位置:首页 > 编程语言

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

2011-09-22 19:57 204 查看
原创文章,如有转载,请注明出处: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:
//按键0
break;
case R.id.key_1:
//按键1
break;
case R.id.key_2:
//按键2
break;
case R.id.key_3:
//按键3
break;
case R.id.key_4:
//按键4
break;
case R.id.key_5:
//按键0
break;
case R.id.key_6:
//按键6
break;
case R.id.key_7:
//按键7
break;
case R.id.key_8:
//按键8
break;
}
}

}


仅给新人学习,高手勿喷。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class equals