不良代码展示-很多判断的写法-给新手
来源:互联网 发布:硕士双录取 知乎 编辑:程序博客网 时间:2024/05/16 18:35
原创文章,如有转载,请注明出处: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;
- }
- }
- }
仅给新人学习,高手勿喷。
0 0
- 不良代码展示-很多判断的写法-给新手
- 不良代码展示-很多判断的写法-给新手
- 不良代码展示-Android排序的实现
- 不良代码展示-String的循环拼接
- 不良代码展示-不要用数组循环判断等于的方式,来判断一个对象是否在一个集合内
- 不良代码展示-高耦合度代码的例子
- 不良代码展示-Activity中使用线程的例子
- 不良代码展示-Android中的位运算的例子(二)
- 不良代码展示-父类中可以抽象出子类的行为
- 不良代码展示-尽量强制转换减少toString()的调用
- 不良代码展示-尽量强制转换减少toString()的调用
- 不良代码展示-Activity中使用线程的例子
- 不良代码展示-两个数组找不同
- 不良代码展示-Android中List和数组的例子(一)
- 不良代码展示-Android中List和数组的例子(二)
- 不良代码展示-Android画面UI中的线程约束
- 常见几种导致内存泄露的不良写法
- jsp页面的循环、判断、截取列表的代码写法
- Z字形扫描-CCF测试往届题
- Android中保存和恢复Fragment状态的最好方法
- C语言知识
- Linux下错误的捕获:全局变量errno和strerror()
- 【LeetCode从零单刷】Maximum Depth of Binary Tree
- 不良代码展示-很多判断的写法-给新手
- c/c++ const详解
- RHEL6从源码安装python及其他软件包
- 深入理解Apache Mina (6)---- Java Nio ByteBuffer与Mina ByteBuffer的区别
- 1111111111111111
- 第29课时,自测
- informatica 创建存储库(Repository Service)和集成服务(Integration Service)
- Win7 X64安装SQLServer2008异常
- bower install js使用bower管理js