![]()
if 문과 or 연산자의 기본 개념
if 문은 프로그래밍 언어에서 조건을 검사하여 특정 코드 블록을 실행하는 데 사용됩니다. 조건이 참(True)일 경우 해당 블록의 코드를 실행하고, 그렇지 않을 경우 다른 코드를 실행하도록 합니다.
if 문의 예시입니다.
```python score = 85
if score >= 90: print("A학점") else: print("B학점") ```
이 경우, score가 90 이상이면 "A학점"을 출력하고, 그렇지 않으면 "B학점"을 출력하게 됩니다. or 연산자는 두 개 이상의 조건 중 하나라도 참이면 전체 조건이 참이 되는 논리 연산자입니다.
or 연산자를 사용하는 예시입니다.
```python month = 12
if month == 1 or month == 2 or month == 12: print("겨울입니다.") else: print("겨울이 아닙니다.") ```
이 코드는 month가 1, 2, 또는 12일 경우 "겨울입니다. "를 출력하게 됩니다.
or 중첩 사용 시의 문제점
위의 예시처럼 or 연산자를 사용할 때 주의해야 할 점은 조건문의 구조입니다. 가끔 프로그래머는 두 개의 조건을 간단하게 표현하고자 or 연산자를 중첩하여 사용하게 됩니다.
```python month = 12
if month == 2: print("2월입니다.") else: if month == 4 or month == 6 or month == 9 or month == 11: print("30일입니다.") ```
이 코드에서는 month가 2일 경우와 4, 6, 9, 11일 경우를 각각 검사합니다. 그러나 만약 아래와 같이 작성한다면 원하는 결과를 얻지 못할 수 있습니다.
python
if month == 4 or 6 or 9 or 11:
print("30일입니다.")
이 경우, month가 4일 때는 조건이 참이지만, month가 6, 9, 11일 때는 조건이 잘못 해석되어 True 값을 가지게 됩니다. 즉, 위의 조건문은 다음과 같이 해석됩니다.
python
if (month == 4) or (6) or (9) or (11):
여기서 6, 9, 11은 모두 참으로 평가되기 때문에 의도치 않게 모든 경우에 해당 코드가 실행됩니다. 이는 or 연산자가 비교 연산자가 아닐 뿐만 아니라, 불리언 타입을 결정하는 연산자라는 점을 간과한 결과입니다.
| 잘못된 코드 | 의도한 코드 |
|---|---|
| if month == 4 or 6 or 9 or 11: | if month == 4 or month == 6 or month == 9 or month == 11: |
올바른 조건문 작성 방법
이러한 오류를 방지하기 위해서는 조건문을 작성할 때 각 조건을 명확하게 작성해야 합니다. 위의 잘못된 코드를 수정하여 올바른 코드를 작성하는 방법은 다음과 같습니다.
python
if month == 4 or month == 6 or month == 9 or month == 11:
print("30일입니다.")
이렇게 하면 month가 4, 6, 9, 11일 경우에만 "30일입니다. "가 출력됩니다.
python
if month in (4, 6, 9, 11):
print("30일입니다.")
이렇게 하면 month가 4, 6, 9, 11 중 하나일 경우에만 해당 코드를 실행할 수 있습니다. 이 방법은 코드가 간결해지고, 읽기 쉬워지는 장점이 있습니다.
중첩 if 문과 사용 예시
if 문은 중첩하여 사용할 수도 있습니다. 중첩 if 문은 특정 조건이 참일 때 또 다른 조건을 검사하고자 할 때 유용합니다.
if 문의 예시입니다.
```python score = 85
if score >= 90: print("A학점") else: if score >= 80: print("B학점") else: print("C학점") ```
이 경우 score가 90 이상일 경우 "A학점"을 출력하고, 80 이상일 경우 "B학점", 그 외의 경우에는 "C학점"을 출력하게 됩니다.
| 점수 범위 | 학점 |
|---|---|
| 90 이상 | A |
| 80 이상 - 90 미만 | B |
| 80 미만 | C |
이처럼 중첩 if 문은 조건을 세분화하여 다양한 결과를 얻는 데 유용합니다. 하지만 중첩이 깊어질수록 코드가 복잡해지기 때문에, 가독성을 고려하여 적절하게 활용해야 합니다.
결론
if 문과 or 연산자를 사용할 때는 조건문의 구조와 의미를 명확하게 알아보는 것이 필요합니다. 특히, or 연산자를 중첩할 때는 각 조건이 어떻게 해석되는지를 생각해야 합니다.