불량 코드 보 여주 기. - 많은 판단 의 표기 법. - 초보 자 에 게.

오리지널 글, 전재 가 있 으 면 출처 를 밝 혀 주 십시오.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;
		}
	}

}

신인 에 게 만 배우 고, 고 수 는 뿌리 지 마라.

좋은 웹페이지 즐겨찾기