프로그래밍/C,C++

if 와 else if의 차이점

노력의천재 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로 설정했을 때 결과

 

 

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