하리Hari

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 이상이다) 라면:
    "탈 수 있어요!"를 출력하자
그렇지 않다면:
    "아직 탈 수 없어요."를 출력하자

다음 장에서는 값에 따라 여러 갈래로 나누는 또 다른 방법, 따라 나누기를 배워요.

놀이터
결과
코드를 작성하고 '실행' 버튼을 눌러보세요.