조건문 (if, if-else, else if)
선수학습(1개)
요약
if문, if-else문, else if(elif) 다중 조건의 기본 구조와 실행 흐름을 알아봅니다. 정보처리기사 실기 코딩 문제의 조건 분기를 이해하기 위한 핵심 개념입니다.
조건문 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| if | 조건이 참이면 실행 | if(a > 0) |
| else | if 조건이 거짓이면 실행 | else |
| else if | 추가 조건 검사 | else if(a == 0) |
| 중첩 if | if 안에 if | if(a > 0) { if(b > 0) ... } |
조건문 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| if | 조건이 참이면 실행 | if(a > 0) |
| else | if 조건이 거짓이면 실행 | else |
| else if | 추가 조건 검사 | else if(a == 0) |
| 중첩 if | if 안에 if | if(a > 0) { if(b > 0) ... } |
조건문 핵심 정리
| 개념 | 설명 | 예시 |
|---|---|---|
| if | 조건이 참이면 실행 | if a > 0: |
| else | if 조건이 거짓이면 실행 | else: |
| elif | 추가 조건 검사 | elif a == 0: |
| 중첩 if | if 안에 if | 들여쓰기로 중첩 |
if문 쌩기초
조건이 참(0이 아닌 값) 이면 중괄호 안의 코드를 실행합니다.
if문 예시
조건이 거짓이면 건너뜀
이처럼 조건이 거짓이면 중괄호 안의 코드를 건너뛰고 다음 줄로 넘어갑니다.
if-else문 쌩기초
조건이 참이면 if 블록1, 거짓이면 else 블록을 실행합니다. 둘 중 하나만 실행됩니다.
if-else문 예시
%(나머지 연산자)가 처음이라면 나머지 연산자 페이지를 먼저 확인하세요.
if문 쌩기초
조건이 true이면 중괄호 안의 코드를 실행합니다.
if문 예시
조건이 거짓이면 건너뜀
if-else문 쌩기초
조건이 true이면 if 블록1, false이면 else 블록을 실행합니다. 둘 중 하나만 실행됩니다.
if-else문 예시
if문 쌩기초
조건이 True이면 들여쓰기된 코드를 실행합니다.
if문 예시
조건이 거짓이면 건너뜀
if-else문 쌩기초
조건이 True이면 if 블록1, False이면 else 블록을 실행합니다. 둘 중 하나만 실행됩니다.
if-else문 예시
else if문 (다중 조건) 기초
여러 조건을 순서대로 검사합니다. 처음으로 참인 조건의 블록만 실행하고 나머지는 건너뜁니다.
else if문 예시
중첩 if문 기초
if문 안에 또 다른 if문을 넣을 수 있습니다.
바깥 if의 조건이 참일 때만 안쪽 if를 검사합니다.
else if문 (다중 조건) 기초
여러 조건을 순서대로 검사합니다. 처음으로 true인 조건의 블록만 실행하고 나머지는 건너뜁니다.
else if문 예시
중첩 if문 기초
if문 안에 또 다른 if문을 넣을 수 있습니다.
바깥 if의 조건이 true일 때만 안쪽 if를 검사합니다.
elif문 (다중 조건) 기초
여러 조건을 순서대로 검사합니다. 처음으로 True인 조건의 블록만 실행하고 나머지는 건너뜁니다.
elif문 예시
중첩 if문 기초
if문 안에 또 다른 if문을 넣을 수 있습니다. 들여쓰기로 중첩 단계를 구분합니다.
바깥 if의 조건이 True일 때만 안쪽 if를 검사합니다.
조건부 표현식 (한 줄 if-else) 쌩기초
조건부 표현식(Conditional Expression) 은 if-else 문장을 한 줄짜리 식으로 줄여 쓰는 문법입니다. 다른 언어의 삼항 연산자2 조건 ? A : B와 같은 역할을 하지만, 파이썬에서는 if와 else 키워드를 그대로 사용합니다.
기본 형식
조건이 참이면 값1, 거짓이면 값2를 결과로 내놓습니다. 결과 값이 앞에, 조건이 가운데, 대체값이 뒤에 오는 점이 일반 if문과 다릅니다.
같은 동작을 일반 if-else문으로 풀어 쓰면 다음과 같습니다.
조건부 표현식은 변수에 대입할 값을 조건에 따라 정할 때, 또는 함수의 인자나 return 값으로 한 줄에 넣을 때 자주 쓰입니다.
식(expression)이지 문장(statement)이 아니다
조건부 표현식은 하나의 값으로 평가되는 식입니다. 그래서 print(...)의 인자, return 뒤, 리스트 안 같은 식이 들어갈 수 있는 모든 자리에 쓸 수 있습니다.
반대로 대입문(x = 1)이나 print() 호출 같은 문장(statement) 은 조건부 표현식 안에 넣을 수 없습니다.
중첩된 조건부 표현식과 결합 규칙 기초
조건부 표현식의 값1이나 값2 자리에 또 다른 조건부 표현식을 넣을 수 있습니다. 정보처리기사 실기에서 가장 헷갈리는 형태가 바로 이 중첩 형태입니다.
처음 보면 (A if B else C) if D else E처럼 앞쪽부터 묶이는 것 같지만, 실제로는 뒤쪽 if-else가 먼저 묶입니다. 즉 다음과 같이 해석됩니다.
이 결합 규칙을 오른쪽 결합(right-associative) 이라고 부릅니다. "B면 A, 아니면 (D면 C, 아니면 E)" 순서로 읽으면 됩니다.
분해해서 읽는 요령
복잡한 중첩 조건부 표현식을 만나면 뒤쪽 if-else부터 괄호를 쳐서 분해합니다.
이렇게 분해하면 "level이 홀수면 n.v, 짝수면 (n이 있으면 0 + sum(...), 없으면 0)" 구조라는 것이 명확하게 보입니다.
일반 if-else로 풀어 쓰기 비교
| 한 줄 표현식 | 풀어 쓴 형태 |
|---|---|
x if x > 0 else -x | if x > 0: x else: -x |
A if B else C if D else E | if B: A elif D: C else: E |
1 if a else 2 if b else 3 | if a: 1 elif b: 2 else: 3 |
중첩 조건부 표현식은 사실상 if-elif-else와 같은 동작을 한 줄로 표현한 것입니다.