ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • if 와 else if의 차이점
    프로그래밍/C,C++ 2020. 2. 29. 20:10

    백준 10818번 문제를 푸는 중 if와 else if의 차이점과 사용 용도를 잘못알고 있어서 정리하기 위해 글을 씁니다.

     

    #include <stdio.h>
    
    int main(void){
    	int i,n,num,max=-2147000000,min=2147000000;
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		scanf("%d",&num);
    		if(min>num){
    			min=num;
    		}else if(max<num){
    			max=num;
    		}
    	}
    	printf("%d %d",min,max);
    	return 0;
    }

     

    else if를 사용하게 되면 조건문 분기에서 if의 조건이 참이 되면 else if 는 실행되지 않고 넘어가기 때문에 최댓값의 값이 새롭게 갱신이 되지않으므로 다음과 같은 결과가 나옵니다.

     

    else if로 설정했을 때 결과

     

    #include <stdio.h>
    
    int main(void){
    	int i,n,num,max=-2147000000,min=2147000000;
    	scanf("%d",&n);
    	for(i=0;i<n;i++){
    		scanf("%d",&num);
    		if(min>num){
    			min=num;
    		}if(max<num){
    			max=num;
    		}
    	}
    	printf("%d %d",min,max);
    	return 0;
    }

     

    반대로 if문을 사용하면 위의 if문의 참과 거짓에 상관없이 if문을 실행하게 됩니다. 따라서 다음과 같이 최소값과 최대값 모두 새롭게 갱신됩니다.

     

    if로 설정했을 때 결과

     

     

    이러한 차이점을 잘 이해하고 사용 용도에 맞게끔 활용하는 것이 중요할 것 같습니다 ㅎㅎ...

    '프로그래밍 > C,C++' 카테고리의 다른 글

    [C/C++] STL Stack, Queue 사용법  (0) 2020.09.22
    [C/C++] map 자료구조를 이용한 문자열 문제 해결  (0) 2020.09.02
    [C/C++] STL Vector 사용법  (0) 2020.05.08
    [C/C++] String 함수 정리  (0) 2020.05.07
    [C/C++] scanf vs fgets  (0) 2020.02.28

    댓글

Designed by Tistory.