if문을 활용한 예제를 작성해보자.
홀짝 판별기
예제) 사용자에게 입력을 받아 홀수인지 짝수인지 판별하여 결과로 출력하는 프로그램을 작성하라.
1) 홀짝 판별하기
홀수와 짝수를 판별하는 가장 전통적이고 정석적이며 효율적인 아이디어는 2로 나눈 나머지를 확인하는 것이다.
- 자연수를 2로 나누어 나머지가 0이면 짝수이다.
- 자연수를 2로 나누어 나머지가 1이면 홀수이다.
2) 1)에 의해 조건을 두 가지로 상정하고 if-else문으로 해결하자.
3) 코드 작성
먼저 2번 줄에서 사용자에게 숫자를 입력받아 정수로 형변환 한다. 5번 줄에서 number를 2로 나눈 나머지가 0인지 확인하는데, 이때가 짝수인 경우이다. 7번 줄은 5번 줄의 조건이 거짓인 경우, 즉 number를 2로 나눈 나머지가 1인 경우이다. 물론, if문으로 나머지가 1인지를 확인하여 코드를 작성할 수 있지만 else문을 쓰는 것이 효율적이다.
4) 결과 테스트
숫자 뒤의 조사가 불편하지만, 정상적인 결과를 출력한다.
성적 판별기
예제) 사용자에게 성적을 입력받아 90~100점은 A, 80~89점은 B, 70~79점은 C, 60~69점은 D, 60점 미만은 F등급임을 출력하는 프로그램을 작성하라.(단, 점수의 최소 단위는 1점이다.)
1) 조건의 간소화
조건을 각각의 조건으로 생각하면 아래와 같이 구분되어 명령어 작성이 복잡해진다.
- ⓛ A인 경우의 조건: ( 점수 >= 90 ) and ( 점수 <= 100 )
- ② B인 경우의 조건: ( 점수 >= 80 ) and ( 점수 <= 89 )
- ③ C인 경우의 조건: ( 점수 >= 70 ) and ( 점수 <= 79 )
- ④ D인 경우의 조건: ( 점수 >= 60 ) and ( 점수 <= 69 )
- ⑤ F인 경우의 조건: ( 점수 >= 0 ) and ( 점수 <= 59 )
부등호에서 등호를 쓰냐마냐에 따라 숫자를 달리할 수는 있겠지만, 이렇게 조건을 설정하면 모든 경우의 수에 대한 조건을 정리할 수 있다. 일단 조건의 수가 많기 때문에 if-elif-else의 구조로 작성할 것이다. 그런데, 조건문이 실행되는 로직을 생각해보면 조건식을 간소화할 수있다. 위에서 아래로 단계적으로 진행한다는 것과, 조건을 만족하는 경우 다음 절차는 건너뛴다는 것을 고려하면 각 급간의 양쪽 범위를 모두 점검하지 않고 한쪽만 점검해도 충분하다. 조건을 다음과 같이 간소화 해보자.
- ⓛ A인 경우의 조건: 점수 >= 90
- ② B인 경우의 조건: 점수 >= 80
- ③ C인 경우의 조건: 점수 >= 70
- ④ D인 경우의 조건: 점수 >= 60
- ⑤ F인 경우의 조건: 점수 <= 59
편의상 0~100 사이 숫자를 입력한다고 가정하고 75점이 입력된 경우에 대해 생각해보자. ①, ②를 단계적으로 통과하면서 입력된 데이터가 80점 이상이 되지 않는다는 것을 점검할 수 있다. 따라서 각 급간의 최댓값 범위를 점검할 필요는 없게 되는 것이다. 물론, ⑤의 경우도 else문을 사용함으로써 조건을 점검하지 않을 수 있다.
2) 코드 작성
3) 결과 테스트
'IT일반' 카테고리의 다른 글
파이썬 프로그래밍 - 제어구조(4), 반복문, for, 최솟값 최댓값 구하기 (0) | 2024.12.07 |
---|---|
파이썬 프로그래밍 - 제어구조(3), 반복문, for, range (0) | 2024.12.06 |
파이썬 프로그래밍 - 제어구조(1), 연산자, 조건문, if문 (0) | 2024.12.04 |
파이썬 프로그래밍 - 코드 스타일, 코딩 규칙의 기초 (0) | 2024.12.03 |
키크론X한컴타자 이벤트 참여 (0) | 2024.11.24 |