조건 — 갈림길에서 결정
조건은 세 블록의 셋째 — 상황에 따라 길을 가르는 블록이에요. "만약 ~라면 ~하고, 아니면 ~한다." 조건이 참이냐 거짓이냐에 따라 둘 중 한 길만 가요. 이 블록까지 모이면 알고리즘의 재료가 다 모인 거예요.
만약 비가 오면? — 값을 바꾸면 길이 갈려요
값을 바꿔 보세요. 가운데 마름모가 조건을 따져 참인지 거짓인지 정하고, 가는 길만 환하게, 안 가는 길은 흐려져요. 한 번에 가는 길은 딱 하나예요.
상황을 따져 '만약 ~라면 한 길, 아니면 다른 길'로 가르는 것 — 이게 조건(conditional)이에요. 앞에서 순서도에 그렸던 마름모(판단)가 바로 이 조건이고요. 컴퓨터는 조건을 참 아니면 거짓, 둘 중 하나로 또렷이 정해서 한 길을 골라요.
이럴 땐 어떻게? — 빈칸을 채워 조건을 완성해요
상황을 읽고, 참일 때 할 일과 거짓일 때 할 일이 바르게 채워진 조건문을 골라 보세요.
조건문은 참일 때 할 일과 거짓일 때 할 일을 짝으로 정해요. 둘을 바꿔 넣으면 더울 때 창문을 여는 엉뚱한 일이 생겨요.
92점이면 합격, 75점이면? — 한 길만 따라가 봐요
같은 조건문에 점수 92와 75를 넣어 보세요. 어느 한 길로만 가는 게 보일 거예요.
값을 넣으면 → 조건을 따져 참/거짓을 정하고 → 둘 중 한 길만 가요. 조건문은 두 길을 모두 적어 두지만, 한 번 갈 때는 늘 하나만 골라요.
앞 챕터에서 본 반복의 '언제 멈출까'도 사실 이 조건이에요 — 예를 들어 '정답을 맞힐 때까지 반복'에서 '맞혔나?'가 바로 참/거짓을 따지는 조건이거든요. 나중에 많은 것 가운데 하나를 빨리 찾을 때 쓰는 '더 커요 / 작아요'도 이런 갈림길이고요.
한 걸음 더 — 다중 분기, 복합 조건, 일상과 컴퓨터의 만약, 반복 종료조건, 학술어
본문만으로 챕터는 완결돼요.
아래는 한 걸음 더 들어가고 싶은 친구를 위한 보너스예요.
1. 갈래가 셋 이상일 때 — 그리고 또 (else if)
지금까지 본 조건은 갈래가 둘이었어요(참이면 A, 아니면 B).
그런데 길이 셋 이상일 때도 있어요.
날씨를 떠올려 봐요.
위에서부터 차례로 따져서, 처음으로 참이 되는 길 하나만 가요.
비가 오면 첫 줄에서 멈추고 아래는 안 봐요.
이렇게 "아니고 만약~"으로 갈래를 늘리는 걸 다중 분기라고 해요(가운데 줄을 영어로 else if라고 적어요).
갈래가 몇 개든 한 번에 가는 길은 여전히 하나예요.
2. 두 가지를 한꺼번에 따지기 — 그리고 / 또는
조건 하나만이 아니라 두 조건을 묶어 따질 수도 있어요.
- 그리고(and): "비가 오고 그리고 추우면 → 두꺼운 외투" — 둘 다 참이어야 참이 돼요. 하나라도 거짓이면 거짓.
- 또는(or): "토요일이거나 또는 일요일이면 → 학교를 안 간다" — 둘 중 하나만 참이어도 참이 돼요.
"그리고"는 까다롭게(둘 다), "또는"은 너그럽게(하나만) 따진다고 기억하면 쉬워요.
이렇게 여러 조건을 묶은 걸 복합 조건이라고 해요.
3. 일상의 '만약'과 컴퓨터의 '만약'은 달라요
사람은 "좀 흐린데?", "약간 추운 것 같아"처럼 애매하게 말할 때가 있어요.
하지만 컴퓨터의 조건은 참 아니면 거짓, 둘 중 하나로 또렷이 정해야 해요.
그래서 "춥다" 대신 "기온이 10도보다 낮다"처럼 딱 잘라 따질 수 있는 말로 바꿔 줘요.
조건을 또렷한 기준으로 적는 것 — 이게 정확한 알고리즘의 첫걸음이에요.
4. 반복이 멈추는 까닭도 조건이에요
앞 챕터에서 본 반복 가운데 "물이 끓을 때까지 기다린다" 같은 게 있었죠.
여기서 "물이 끓었나?"가 바로 참/거짓을 따지는 조건이에요.
이 조건이 참이 되는 순간 반복이 멈춰요.
만약 멈출 조건이 없으면 반복은 영원히 돌아요(끝나지 않는 반복).
그러니까 반복을 멈추는 일과 조건은 한 몸이에요 — 갈림길이 "이제 그만!"을 정해 주는 셈이죠.
5. 학술어 — 조건/선택(selection, conditional)
본문에서 "갈림길"이라고 부른 이 블록을 컴퓨터 과학에서는 조건문(conditional) 또는 선택(selection)이라고 불러요.
여러 길 가운데 하나를 고른다(select)는 뜻이에요.
적는 방식도 이름이 있어요.
- IF (조건) THEN A(만약 ~이면 A) — 참일 때만 한 길.
- IF (조건) THEN A ELSE B(만약 ~이면 A 아니면 B) — 참이면 A, 거짓이면 B 두 길.
- ELSE IF(아니고 만약~) — 갈래를 셋 이상으로 늘릴 때.
순차가 차례대로, 반복이 되풀이라면, 조건(선택)은 상황에 따라 길을 고르는 블록이에요.
이 세 블록 — 순차(sequencing)·반복(iteration)·조건/선택(selection) — 의 조합으로 거의 모든 알고리즘을 만들 수 있어요.
자가진단
외운 사실이 아니라 개념을 적용하는 문제예요. 답을 고르면 바로 정답·오답과 해설을 알려줘요. 틀려도 괜찮아요 — ↻ 다시로 얼마든지 다시 풀 수 있어요.
만약 (조건) 이면 A, 아니면 B 꼴의 조건문을 실행하면 어떻게 될까요? 가장 알맞은 것은 무엇일까요?핵심 정리
~라면?
(순차)
(반복)
(조건)방금 채움
- 조건은 만약 ~라면 ~하고, 아니면 ~한다 — 참/거짓을 따져 둘 중 한 길만 가요.
- 반복의 '언제 멈출까'도 사실 이 조건이에요(맞혔나? 끓었나?).
- 이제 순차(차례대로)·반복(되풀이)·조건(갈림길) 세 블록이 다 모였어요 — 앞에서 "모든 알고리즘은 이 세 블록의 조합"이라 했던 약속을, 직접 만지며 확인했어요. 앞에서 그린 우산 순서도도 하늘을 본다(순차) + 비가 오나?(조건) 으로 설명돼요.
블록은 다 알았어요. 그럼 문제가 크고 복잡할 때 좋은 알고리즘을 어떻게 설계할지가 다음 이야기예요.