가끔 아무 생각 없이 프로그래밍을 할 때가 있다. coding site의 문제를 푼다던가 개인적인 프로그램을 만들거나 등...
그럴 때 아주 초보적인 실수를 할 때가 종종 있는데, 대충 결과만 얻으려고 간단하게 만들다가, 오히려 실(失)이 되어
원하는 결과가 바로 나오지 않아 시간이 더 걸리는 경우가 있다.
1) if문(조건문)
복잡한 프로그램을 만들 때에는 오히려 안하는 실수이기도 하다. 경우의 수를 하나하나 생각하면서 만들 가능성이 높기 때문이다. 업무를 좀 더 편하게 하기 위해 사용하는 스크립트나 개인적인 프로그램을 만들 때 오히려 실수를 하는 경우가 높은 것 같다.
if - else if 와 if - if의 차이점은 if - else if의 경우 윗 단계에서 먼저 부합되는 조건을 찾으면, 그 루틴만 실행하고, 나머지 조건을 확인하지 않고, if - else if를 빠져나온다.
#include <iostream>
int main(){
int a;
std::cin >> a;
if(a > 10)
std::cout << "[1] > 10" << std::endl;
else if(a > 10)
std::cout << "[2] > 10" << std::endl;
//일부러 같을 경우는 넣지 않음.
else if(a < 10)
std::cout << "[3] 10보다 작다" << std::endl;
else
std::cout << "[4] 10보다 작다" << std::endl;
return 0;
}
반면 if - if는 서로 다른 조건 분기이기 때문에 전부 조건을 확인하고, 맞으면 그 루틴을 실행한다.
#include <iostream>
int main(){
int a;
std::cin >> a;
if(a > 10)
std::cout << "[1] > 10" << std::endl;
if(a > 10)
std::cout << "[2] > 10" << std::endl;
//일부러 같을 경우는 넣지 않음.
if(a < 10)
std::cout << "[3] 10보다 작다" << std::endl;
else
std::cout << "[4] 10보다 작다" << std::endl;
return 0;
}
위의 결과에서 [4]이 출력된 이유는 else가 가장 가까운 if의 if - else 문으로 인식하기 때문에, 11은 [3]번의 a < 10의 조건에 만족하지 않아 else가 실행된다.
- 서로 연관되어 있는 조건 관계를 영역으로 표시할 경우
'Programming' 카테고리의 다른 글
프로그래밍 경험 및 객체지향 기술 능력에 대하여 (0) | 2020.07.23 |
---|---|
Linux kernel coding style(C language) (0) | 2020.04.27 |