if 문에서 or 중첩 사용 시 유의사항

2025-11-11 · Uncategorized · 읽는데 10분

if 문에서 or 중첩 사용 시 유의사항
프로그래밍 언어에서 조건문을 사용하여 데이터를 처리하는 것은 매우 중요한 요소입니다. 특히, 파이썬과 같은 언어에서 `if` 문을 사용하여 다양한 조건을 평가하고, 이를 기반으로 프로그램의 흐름을 제어하는 것은 필수적입니다.

오늘은 `if` 문에서 `or` 연산자를 중첩하여 사용하는 경우 주의해야 할 점에 대해 자세히 살펴보겠습니다.

썸네일

or 연산자의 이해

조건문 사용

if 문에서 or 연산자는 두 개 이상의 조건 중 하나라도 참일 경우 전체 결과가 참으로 평가되는 특성을 가지고 있습니다. 이론적으로는 간단하게 들리지만, 코드 구현 시 실수를 범하기 쉽습니다.

예를 들어, 다음과 같은 코드가 있다고 가정해 보겠습니다.

```python month = 12

if month == 2: print("2월입니다.") else: if month == 4 or month == 6 or month == 9 or month == 11: print("이 달은 30일까지입니다.") else: print("이 달은 31일까지입니다.") ```

위 코드는 조건에 따라 달의 길이를 출력하는 간단한 프로그램입니다. 만약 month 변수가 12로 설정되었다면, 첫 번째 if 문은 거짓이 되고, 두 번째 if 문이 실행됩니다.

그러나 이때 or 연산자의 사용이 올바르게 이루어졌는지 확인하는 것이 필요합니다. 예를 들어, 만약 다음과 같이 코드를 작성했다면 문제가 발생할 수 있습니다.

python if month == 4 or 6 or 9 or 11:

이 코드는 month == 4가 참인 경우에만 검사를 수행하고, 그 외의 경우는 6, 9, 11이 항상 참으로 평가되기 때문에 원치 않는 결과를 초래하게 됩니다. 따라서 or 연산자를 사용할 때는 반드시 각 조건을 명확하게 작성해야 합니다.

조건문 예제 설명
month == 4 or month == 6 or month == 9 or month == 11 올바른 사용: 각 조건을 명확하게 구분하여 평가
month == 4 or 6 or 9 or 11 잘못된 사용: 6, 9, 11이 항상 참으로 평가됨

중첩 if 문과 or 연산자

or 연산자

if 문을 중첩하여 사용할 때는 더욱 주의해야 합니다. 중첩된 if 문에서는 각 조건이 독립적으로 평가되므로, 논리적 흐름을 정확히 알아보고 있어야 합니다.

예를 들어, 다음과 같은 코드 조각을 살펴보겠습니다.

```python month = 5

if month == 2: print("2월입니다.") else: if month == 4 or month == 6 or month == 9 or month == 11: print("30일까지입니다.") else: print("31일까지입니다.") ```

이 코드에서 month가 5일 경우, 첫 번째 조건은 거짓이 되고, 두 번째 조건도 거짓이기 때문에 최종적으로 "31일까지입니다. "라는 결과가 출력됩니다.

이러한 구조를 알아보고 있지 않으면 의도하지 않은 출력 결과를 초래할 수 있습니다. 중첩된 if 문을 사용할 경우, 각 조건문이 서로 독립적으로 작동한다는 점을 명심해야 합니다.

만약 중첩의 깊이가 깊어질수록 가독성이 떨어질 수 있으므로, 조건이 복잡해질 경우에는 함수로 분리하거나 추가적인 주석을 통해 가독성을 높이는 것이 좋습니다.

if 문 중첩 예시 설명
if condition1:
if condition2:
중첩된 if 문: 각 조건이 독립적으로 평가됨
if (condition1 and condition2): 조건이 복잡해질 경우 AND 연산자로 결합하여 사용 가능

다른 내용도 보러가기 #1

AND 조건 연산자와의 조합

or 연산자와 함께 and 연산자를 조합하여 사용할 경우에는 더욱 주의가 필요합니다. 예를 들어, 다음과 같은 조건을 고려해 볼 수 있습니다.

```python a = 4 b = 8

if (a % 2 == 0) or (b % 2 == 0): print("둘 중 하나는 짝수입니다.") else: print("둘 다 홀수입니다.") ```

위 코드는 a 또는 b 중 하나라도 짝수인 경우 결과를 출력하는 구조입니다. 하지만 이러한 조건을 and 연산자를 사용하여 바꾼다면, 두 변수 모두 짝수일 때만 참으로 평가됩니다.

python if (a % 2 == 0) and (b % 2 == 0): print("둘 다 짝수입니다.") else: print("둘 중 하나는 홀수입니다.")

이처럼 and와 or을 적절히 조합하여 사용할 경우, 보다 정교한 조건 평가가 가능하나, 각 조건의 평가 방식에 대한 이해가 필수적입니다.

조건 조합 예시 설명
if (a % 2 == 0) or (b % 2 == 0) 둘 중 하나가 참인 경우
if (a % 2 == 0) and (b % 2 == 0) 둘 다 참인 경우

코드의 가독성 향상

마지막으로, 코드의 가독성을 높이기 위해서는 조건문을 적절히 정리하는 것이 필요합니다. 복잡한 논리 조건을 사용할 때는 조건을 괄호로 묶어 우선순위를 명확히 하거나, 각 조건을 변수에 할당하여 코드의 의미를 명확히 할 수 있습니다.

예를 들어, 다음과 같은 코드는 가독성이 떨어집니다.

python if (a % 2 == 1) and (b > 20): print("조건을 만족합니다.")

이 코드를 다음과 같이 개선할 수 있습니다.

```python is_odd = (a % 2 == 1) is_greater_than_20 = (b > 20)

if is_odd and is_greater_than_20: print("조건을 만족합니다.") ```

이렇게 하면 각 조건의 의미가 분명해지고, 코드의 가독성이 향상됩니다. 이는 유지보수 시에도 큰 도움이 됩니다.

가독성 향상 예시 설명
if (condition1) and (condition2) 복잡한 조건을 직접 사용
is_condition1 = (condition1)
is_condition2 = (condition2)
조건을 변수로 저장하여 가독성 향상

결론

if 문에서 or 연산자를 중첩하여 사용할 때는 여러 가지 주의할 점이 있습니다. 조건문을 명확히 하고, 가독성을 유지하며, 논리적 흐름을 정확히 알아보는 것이 필요합니다.

이러한 점들을 염두에 두고 코드를 작성한다면, 더욱 효율적이고 오류 없는 프로그래밍이 가능할 것입니다.

관련 영상

같이 보면 좋은 글