프로그래밍/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 는 실행되지 않고 넘어가기 때문에 최댓값의 값이 새롭게 갱신이 되지않으므로 다음과 같은 결과가 나옵니다.
#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문을 실행하게 됩니다. 따라서 다음과 같이 최소값과 최대값 모두 새롭게 갱신됩니다.
이러한 차이점을 잘 이해하고 사용 용도에 맞게끔 활용하는 것이 중요할 것 같습니다 ㅎㅎ...