Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 중첩 if 문(Nested if)을 사용하는 방법

프로그래밍에서 중첩(nesting)이란 하나의 조건문 안에 또 다른 조건문이 포함되어 있는 구조를 의미합니다. Python에서는 if 문뿐만 아니라 else 블록 안에도 새로운 if 문을 중첩하여 사용할 수 있습니다.

중첩 if 문의 기본 개념

Python에서 각 if 블록은 점점 깊어지는 들여쓰기(indentation) 수준을 가집니다. 따라서 중첩된 if 조건문을 작성할 때는 내부 블록의 들여쓰기가 외부 블록보다 한 단계 더 깊어져야 합니다. 이러한 들여쓰기 규칙은 Python이 코드 블록의 계층 구조를 판단하는 핵심 방식입니다.

중첩 if 문의 일반적인 문법

if expr1==True:
    if expr2==True:
        # expr1과 expr2가 모두 참일 때 실행됩니다
    else:
        # expr1은 참이지만 expr2가 거짓일 때 실행됩니다
else:
    if expr3==True:
        # expr1이 거짓이고 expr3가 참일 때 실행됩니다
    else:
        # expr1과 expr3가 모두 거짓일 때 실행됩니다

중첩 if 문의 동작 방식

위 문법 구조를 단계별로 살펴보면 다음과 같습니다.

  • 첫 번째 조건(expr1): 외부 if 문이 먼저 평가됩니다. 이 조건이 참이면 내부의 두 번째 조건(expr2)을 검사하고, 거짓이면 외부 else 블록으로 이동합니다.
  • 두 번째 조건(expr2): 외부 조건이 참일 때만 평가됩니다. 참이면 해당 블록이 실행되고, 거짓이면 내부 else 블록이 실행됩니다.
  • 세 번째 조건(expr3): 외부 조건이 거짓일 때 평가되며, 그 결과에 따라 마지막 else 블록까지 분기됩니다.

간단한 활용 예제

실제 코드에서 중첩 if 문이 어떻게 동작하는지 확인해 보겠습니다.

age = 25
has_id = True

if age >= 18:
    if has_id:
        print("입장 가능합니다.")
    else:
        print("신분증을 지참해 주세요.")
else:
    print("미성년자는 입장할 수 없습니다.")

주의 사항

중첩 if 문은 강력하지만, 너무 깊은 중첩은 코드의 가독성을 떨어뜨릴 수 있습니다. 일반적으로 2~3단계 이상의 중첩은 피하는 것이 좋으며, 필요하다면 and, or 같은 논리 연산자로 조건을 결합하거나 함수로 분리하는 방법을 고려하는 것이 바람직합니다.