A = int(input()) if A < 60: # 60점 미만이면 F print('F') elif A < 70: # 70점 미만이면 D print('D') elif A < 80: # 80점 미만이면C print('C') elif A < 90: # 90점 미만이면 B print('B') else: # 90점 이상이면 A print('A')
if 조건문은 위에서부터 차례로 조건을 만족하는지 확인한다. 조건이 맞다면 그 문장을 실행하고 if문을 탈출한다. 즉, 조건을 만족한 순간 그 아래에 있는 조건은 확인하지 않는다. 만약 이 문제를 높은 점수 순으로 조건을 설정하면 어떻게 될까?
A = int(input())
if A >= 90: # 90점 이상이면 A
print('A')
elif A < 90: # 90점 미만이면 B
print('B')
elif A < 80: # 80점 미만이면C
print('C')
elif A < 70: # 70점 미만이면 D
print('D')
else: # 60점 미만이면 F
print('F')
A가 65점이면 성적이 D가 되어야 하는데 elif A < 90: # 90점 미만이면 B
이 부분에서 조건을 만족하게 되어서 'B'가 출력된다. 따라서 잘 생각해서 구현을 해야한다. 물론 정확한 범위를 정해주면 어떤 순서로 코드를 짜도 상관은 없지만 간결함은 생명!이기 때문에...ㅎㅎ
#include <iostream> using namespace std; int main() { int A; cin >> A; if (90 <= A && A <= 100) cout << "A"; else if (80 <= A && A <= 89) cout << "B"; else if (70 <= A && A <= 79) cout << "C"; else if (60 <= A && A <= 69) cout << "D"; else cout << "F"; }
이렇게 범위를 확실히 정해주는 것도 좋은 방법이다.