1. 선택 구조 개념
- 특정 영역 내의 명령문에 대한 실행 여부를 판단에 따라 결정하는 구조
- 실행 여부는 조건에 따라 결정
2. 선택 구조의 구문형식
if 불리언식 :
[Tab] 명령문1
[Tab] 명령문2
- 들여쓰기는 코드 블록을 표현
- 코드 블록이란?
- 특정 동작을 수행하는 한 라인 이상의 명령문의 집합
- 스페이스 4칸 권고( PEP-8 )
3. 선택 구조의 실행흐름
- 불리언식이 True일시 → 명령문1과 명령문2 실행
- 불리언식이 False일시 → 명령문1과 명령문2를 실행하지 X
4. 불리언식
- 비교연산자를 사용하여 결과가 불리언 타입으로 생성되는 표현식
- 연산자 : <, ≤, >, ≥, ==, ≠
5. 불리언( Boolean ) 타입
- 논리값인 참( True )과 거짓( False )의 값만 표현할 수 있는 데이터 타입
- True 또는 False 예약어를 사용하여 표현
- 비교 연산자를 사용한 표현식의 결과로 생성
6. 논리연산자의 개념
- 참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자
- 두 개의 논리값( 불리언식 )을 연산하여 참 또는 거짓을 결과로 얻는 연산자
- 두 개의 피연산자를 갖는 이항 연산자
- and( 논리곱 ), or( 논리합 ), not( 논리부정 ) 연산자 사용
- 왼쪽에서 오른쪽의 방향으로 결합
7. AND
- 두 논리값이 모두 True 일 때 True이고 어느 하나 False일 경우 False를 반환
- 진리표( Truth table )
b1 |
b2 |
b1 AND b2 |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
8. OR
- 두 논리값이 모두 False 일 때 False이고 어느 하나 True일 경우 True를 반환
- 진리표
b1 |
b2 |
b1 OR b2 |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE |
9. NOT
- 단항 연산자로 논리값을 반전하여 False는 True로, True는 False로 반환
- 단항 연산자 : 피연산자가 하나밖에 없는 연산자
- 진리표
b1 |
NOT b1 |
FALSE |
TRUE |
TRUE |
FALSE |
10. 단락평가
- short-circuit evaluation
- 첫 번째 논리값 만으로 전체 연산 결과가 판별 가능할 때 두 번째 논리값은 확인(평가)하지 않는 기법
11. 이분 선택 구조의 구문형식
if 불리언식 :
[Tab]명령문1
else :
[Tab]명령문2
- 실행 흐름
- True → 명령문1 실행
- False → 명령문2 실행
12. 다분 선택 구조의 구문형식
if 불리언식1 :
[Tab]명령문1
elif 불리언식2 :
[Tab]명령문2
.
.
.
elif 불리언식n :
[Tab]명령문n
else :
[Tab]명령문n+1
- 실행 흐름
- 불리언식1 True → 명령문1 실행
- 불리언식2 True → 명령문 2 실헹
- …
- 불리언식n True → 명령문n 실행
- False → 명령문n+1 실행
13. 중첩 선택 구조의 구문형식
if out불리언식 :
[Tab]if in불리언식1 :
[Tab][Tab]in명령문1
[Tab]else :
[Tab][Tab]in명령문2
else :
[Tab]if in불리언식2 :
[Tab][Tab]in명령문3
- 실행 흐름
- out불리언식 판별 → in불리언식1 판별 → 해당 명령문 실행