5. 조건문 (만약 ~라면)
상황에 따라 다른 일을 하게 만들어요.
이 장에서 배울 것
- 참과 거짓, 그리고 비교하기
만약 … 라면:,그렇지 않고 만약,그렇지 않다면:- 여러 조건 묶기 (
그리고,또는)
지금까지의 프로그램은 언제나 같은 일을 했어요. 이번에는 “비가 오면 우산을 챙기고, 아니면 그냥 나가자”처럼 상황에 따라 다른 일을 하게 만들어요.
참과 거짓
조건은 결국 맞다(참) 또는 틀리다(거짓) 둘 중 하나로 정해져요. 이 두 값을 논리 값이라고 해요. 비교를 하면 논리 값이 나와요.
'나이'를 15로 정하자
('나이'가 19보다 크다)를 출력하자
('나이'가 10보다 크다)를 출력하자
거짓과 참이 나와요.
비교하는 말
| 쓰는 법 | 뜻 | 기호로 쓰면 |
|---|---|---|
('a'가 5와 같다) |
a가 5와 같다 | ('a' == 5) |
('a'가 5와 다르다) |
a가 5와 다르다 | ('a' != 5) |
('a'가 5보다 크다) |
a > 5 | ('a' > 5) |
('a'가 5보다 작다) |
a < 5 | ('a' < 5) |
('a'가 5 이상이다) |
a가 5이거나 더 크다 | ('a' >= 5) |
('a'가 5 이하이다) |
a가 5이거나 더 작다 | ('a' <= 5) |
말로 써도, 기호로 써도 똑같아요. 편한 쪽을 쓰세요. “5보다 크다”는 5를 포함하지 않고, “5 이상”은 5를 포함한다는 것만 주의하세요.
만약 ~ 라면
만약 (조건) 라면: 다음 줄을 들여 쓰면, 조건이 참일 때만 그 묶음이 실행돼요. (콜론과 들여쓰기는 0장에서 봤어요.)
'속도'를 120으로 정하자
만약 ('속도'가 100보다 크다) 라면:
"너무 빨라요! 속도를 줄이세요."를 출력하자
"운전 중"을 출력하자
'속도'가 120이라 조건이 참 → 경고가 나와요.- 마지막 줄은 들여 쓰지 않았으니 조건과 상관없이 항상 나와요.
'속도'를 80으로 바꾸고 다시 실행해 보세요. 경고 없이 운전 중만 나와요.
아니면: 그렇지 않다면
조건이 거짓일 때 할 일은 그렇지 않다면: 아래에 써요.
'나이'를 15로 정하자
만약 ('나이'가 19 이상이다) 라면:
"성인이에요."를 출력하자
그렇지 않다면:
"미성년자예요."를 출력하자
두 묶음 중 꼭 하나만 실행돼요.
여러 갈래: 그렇지 않고 만약
갈래가 셋 이상이면 그렇지 않고 만약을 이어 붙여요. 위에서부터 차례로 검사해서 처음 참인 묶음 하나만 실행돼요.
'점수'를 85로 정하자
만약 ('점수'가 90 이상이다) 라면:
"A"를 출력하자
그렇지 않고 만약 ('점수'가 80 이상이다) 라면:
"B"를 출력하자
그렇지 않고 만약 ('점수'가 70 이상이다) 라면:
"C"를 출력하자
그렇지 않다면:
"다시 도전!"을 출력하자
85점은 첫 조건(90 이상)이 거짓, 둘째 조건(80 이상)이 참이라 B만 나와요. 셋째 조건(70 이상)도 참이지만, 이미 앞에서 하나가 실행됐으니 검사하지 않아요. 그래서 큰 기준부터 차례로 쓰는 게 중요해요.
여러 조건 묶기: 그리고, 또는
| 묶는 말 | 참이 되는 때 | 예 |
|---|---|---|
그리고 |
양쪽이 모두 참일 때 | 20살 이상 그리고 30살 미만 |
또는 |
양쪽 중 하나라도 참일 때 | 비 또는 눈 |
각 조건은 따로 괄호로 묶어 주세요.
'나이'를 25로 정하자
만약 ('나이'가 20 이상이다) 그리고 ('나이'가 30보다 작다) 라면:
"20대예요!"를 출력하자
'날씨'를 "눈"으로 정하자
만약 ('날씨'가 "비"와 같다) 또는 ('날씨'가 "눈"과 같다) 라면:
"우산을 챙기세요."를 출력하자
논리 값을 이름표에 담기
비교 결과를 이름표에 담아 두면 조건을 읽기 쉬워져요.
'나이'를 25로 정하자
'성인'을 ('나이'가 19 이상이다)로 정하자
만약 '성인' 라면:
"입장할 수 있어요."를 출력하자
“아닐 때”를 검사하고 싶다면 거짓과 같다로 비교하세요.
'회원'을 거짓으로 정하자
만약 ('회원'이 거짓과 같다) 라면:
"회원 가입을 해 주세요."를 출력하자
조건 안에 조건
묶음 안에 또 만약을 쓸 수 있어요. 들여쓰기를 한 단계 더 하면 돼요.
'나이'를 20으로 정하자
'표'를 참으로 정하자
만약 ('나이'가 19 이상이다) 라면:
만약 '표' 라면:
"입장하세요!"를 출력하자
그렇지 않다면:
"표를 먼저 사 주세요."를 출력하자
그렇지 않다면:
"성인만 입장할 수 있어요."를 출력하자
자주 하는 실수
1. 조건에 참·거짓이 아닌 값 넣기
만약에는 참이나 거짓이 되는 식만 쓸 수 있어요. 숫자나 글자를 그대로 넣으면 오류가 나요. 하리는 “0이면 거짓” 같은 규칙으로 넘어가지 않아요. 실수가 조용히 지나가지 않게 하려는 거예요.
'나이'를 20으로 정하자
만약 ('나이') 라면:
"성인이에요!"를 출력하자
원하는 검사를 비교로 분명히 써 주세요. 값이 비었는지는 비어있음과 비교하면 돼요.
'나이'를 20으로 정하자
'별명'을 비어있음으로 정하자
만약 ('나이'가 19 이상이다) 라면:
"성인이에요!"를 출력하자
만약 ('별명'이 비어있음과 같다) 라면:
"별명이 아직 없어요."를 출력하자
2. 콜론이나 들여쓰기 빠뜨리기
라면 뒤의 콜론(:)과 그 아래 줄의 들여쓰기를 꼭 써 주세요. 들여 쓰지 않은 줄은 조건과 상관없이 실행돼요.
3. 갈래 순서를 거꾸로 쓰기
그렇지 않고 만약은 위에서부터 처음 참인 하나만 실행해요. “70 이상”을 “90 이상”보다 먼저 쓰면 95점도 C가 돼요.
정리
| 하고 싶은 일 | 쓰는 법 |
|---|---|
| 조건이 참일 때 | 만약 (조건) 라면: + 들여 쓴 묶음 |
| 아닐 때 | 그렇지 않다면: |
| 다른 조건 | 그렇지 않고 만약 (조건) 라면: |
| 모두 참 | (조건1) 그리고 (조건2) |
| 하나라도 참 | (조건1) 또는 (조건2) |
| 같다/다르다 | ('a'가 5와 같다), ('a'가 5와 다르다) |
| 크기 비교 | 보다 크다, 보다 작다, 이상이다, 이하이다 |
연습 문제
1. 숫자가 짝수인지 홀수인지 출력해 보세요. (힌트: 3장의 나머지 %)
'수'를 7로 정하자
정답 예시
'수'를 7로 정하자
만약 ('수' % 2가 0과 같다) 라면:
"짝수"를 출력하자
그렇지 않다면:
"홀수"를 출력하자
2. 기온에 따라 옷차림을 알려 주는 프로그램을 만들어 보세요. 28도 이상이면 “반팔”, 15도 이상이면 “긴팔”, 그보다 낮으면 “패딩”이에요.
정답 예시
'기온'을 20으로 정하자
만약 ('기온'이 28 이상이다) 라면:
"반팔"을 출력하자
그렇지 않고 만약 ('기온'이 15 이상이다) 라면:
"긴팔"을 출력하자
그렇지 않다면:
"패딩"을 출력하자
3. 놀이기구를 타려면 키가 120cm 이상이고 나이가 7살 이상이어야 해요. 탈 수 있는지 출력해 보세요.
정답 예시
'키'를 125로 정하자
'나이'를 6으로 정하자
만약 ('키'가 120 이상이다) 그리고 ('나이'가 7 이상이다) 라면:
"탈 수 있어요!"를 출력하자
그렇지 않다면:
"아직 탈 수 없어요."를 출력하자
다음 장에서는 값에 따라 여러 갈래로 나누는 또 다른 방법, 따라 나누기를 배워요.