본문 바로가기
Tip & Tech

Age == 17? 17 == Age?

by virgo81 2007. 9. 3.
조건문에서 사람들은 보통 상수를 오른쪽에 놓는다.

C 코드로 예를 들면 아래와 같다.

if(Age == 17) {
// 수행될 문장.
}

==을 =으로 쓰지 않는 한 아무 문제 없는 식이다.

아래와 같은 경우를 생각해보자.

if(Age = 17) {
// 수행될 문장
}

이 역시, 멍청한 컴파일러에게는 아무 문제 없는 식이다.(똑똑한 최신 컴파일러 if 문 안이 무언가 잘못 되었다고 생각하고 자기 의견을 알려준다.)

문제는 우리가 항상 똑똑한 컴파일러를 쓴다는게 아니다.

이런 실수를 줄일려면, 간단한 습관하나만 바꾸면 된다.

상수를 왼쪽에 써보아라.

if(17 == Age) {
// 수행될 문장.
}

아무 문제 없이 잘 작동한다.

if(17 = Age) {
// 수행될 문장.
}

아주 멍청한 컴파일러라도 저정도 문장은 이해하고 에러를 안겨줄 것이다.

당신도 습관을 바꿔보겠는가?? 근데 습관 바꾸는게 생각보다 쉽지 않다~ㅡㅜ




In condition statement, People generally set a constant right side.

For example, C code.

if(Age == 17) {
// Some lines to be executed.
}

If you didn't use = instead of ==, There is no problem.

You can see the other case.

if(Age = 17) {
// Some lines to be executed.
}

Stupid compiler thinks there is no problem. (State of the art compiler might say there is a problem.)

Problem is that you always use state of the art compiler is not true..

Just change your coding style.

Set a constant left side.

if(17 == Age) {
// Some lines to be executed.
}

There is no problem.

if(17 = Age) {
// Some lines to be executed.
}

Even stupid compiler will say there is a problem.

Can you change your coding style?? But, It is hard to change...T.T