본문 바로가기

Programming

coding 기초(실수 하는 것들)

가끔 아무 생각 없이 프로그래밍을 할 때가 있다. 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가 실행된다.

 

  • 서로 연관되어 있는 조건 관계를 영역으로 표시할 경우

< if - else if - else >

 

< if - if >