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