코딩의 기본 조건문(if문) 개념과 실생활 예시 정리
프로그래밍의 핵심 조건문 이해하기
컴퓨터는 계산을 빠르게 처리하지만, 스스로 판단하는 능력은 없는 기계입니다.
사람이 입력해 준 명령어와 데이터를 정해진 대로 처리할 뿐입니다. 그렇다면 컴퓨터는 복잡한 상황을 마주했을 때 어떻게 판단하는 것처럼 보일까요?
그 열쇠가 바로 조건문입니다. 조건문은 프로그래밍의 기초가 되는 중요한 개념입니다.
코딩을 배우기 시작하면 조건문에서 처음 어려움을 느끼는 분이 많습니다. 하지만 걱정할 필요는 없습니다.
조건문은 우리가 일상에서 무의식적으로 하는 판단과 같은 구조를 가지고 있기 때문입니다. 컴퓨터의 언어도 우리가 생각하는 방식을 규칙에 맞게 옮겨 적은 것입니다.
조건문이 우리 삶에서 작동하는 방식
아침에 집을 나서기 전에 창밖을 보고 비가 오면 우산을 챙기고, 비가 오지 않으면 그냥 나갑니다. 이것이 조건문의 기본 구조입니다. “만약 ~라면 ~한다, 아니면 ~한다”의 형태이기 때문입니다.
여기서 비가 오는지가 조건이고, 우산을 챙기는 것은 조건이 참일 때 실행하는 행동입니다. 배가 고프면 밥을 먹고 고프지 않으면 먹지 않는 것도 같은 구조입니다.
- 회사에 가는 날이면 정장을 입고, 쉬는 날이면 편한 옷을 입는다.
- 지갑에 현금이 만 원 이상 있으면 택시를 타고, 그보다 적으면 버스를 탄다.
- 알람이 울릴 때 다시 알림 버튼을 누르면 5분 뒤에 다시 울리고, 그냥 일어나면 알람을 끈다.
프로그램 속 조건문도 이 방식으로 작동합니다. 주어진 조건이 참인지 거짓인지를 확인하고, 그 결과에 따라 실행할 명령을 고릅니다.
프로그래밍에서 조건문의 기본 구조와 종류
프로그래밍 언어마다 문법은 조금씩 다르지만, 조건문의 기본 원리는 대부분의 언어에서 같습니다. 이 글에서는 파이썬을 기준으로 설명합니다. 파이썬에서는 ‘만약’이라는 뜻의 if, ‘그렇지 않고 다른 조건이라면’이라는 뜻의 elif, ‘그 외 모두’라는 뜻의 else, 이 세 가지 명령어로 조건문을 만듭니다.
가장 기본적인 판단을 내리는 방식
가장 단순한 형태는 조건이 맞을 때만 특정 행동을 하고, 맞지 않으면 아무것도 하지 않는 구조입니다. 시험 점수가 80점 이상일 때만 “합격”이라는 글자를 화면에 보여 주고 싶다면 if만 사용합니다.
컴퓨터는 점수가 80점 이상인지 확인해서, 맞으면 명령을 실행하고 80점 미만이면 그냥 다음 단계로 넘어갑니다.
두 가지 길목에서 하나를 선택하는 방식
조건이 맞을 때와 맞지 않을 때 각각 다른 행동을 해야 하는 경우가 더 많습니다. 이럴 때는 if와 else를 함께 사용해서 조건이 참일 때의 행동과 거짓일 때의 행동을 각각 지정합니다. 로그인할 때 아이디와 비밀번호가 맞으면 환영 페이지로 이동하고, 틀리면 오류 메시지를 보여 주는 경우가 대표적입니다.
여러 개의 조건 중에서 선택하는 복잡한 방식
세 가지 이상의 가능성이 있을 때는 elif를 사용해서 조건을 순서대로 검사합니다. 예를 들어 대중교통 요금을 계산할 때 나이에 따라 요금이 달라지는 상황이 있습니다. 어린이는 무료, 청소년은 할인, 노인은 무료, 그 외 성인은 정가라는 기준을 위에서부터 차례로 검사합니다.
- 첫 번째 조건인 어린이에 해당하는지 먼저 확인하고, 맞으면 무료 요금을 적용합니다.
- 어린이가 아니라면 두 번째 조건인 청소년에 해당하는지 확인하고, 맞으면 할인 요금을 적용합니다.
- 청소년도 아니라면 세 번째 조건인 노인에 해당하는지 확인하고, 맞으면 무료 요금을 적용합니다.
- 앞의 조건에 모두 해당하지 않으면 마지막으로 성인 정가를 적용합니다.
파이썬 코드로 조건문 만들어 보기
앞에서 설명한 세 가지 형태를 파이썬 코드로 직접 확인해 보겠습니다. 파이썬에서는 조건 뒤에 콜론(:)을 붙이고, 조건이 맞을 때 실행할 줄은 앞에 공백 4칸을 띄워 적습니다. 이 공백을 들여쓰기라고 부르며, 이것으로 어떤 줄이 조건문에 속하는지 구분합니다.
score = 85
if score >= 80:
print("합격")
실행하면 화면에 “합격”이 출력됩니다. score가 85이고 85는 80 이상이라서 조건이 참이 되기 때문입니다. score를 70으로 바꾸면 조건이 거짓이 되어 아무것도 출력되지 않습니다.
이번에는 else를 함께 사용해 조건이 거짓일 때의 행동도 정해 보겠습니다.
score = 70
if score >= 80:
print("합격")
else:
print("불합격")
실행하면 화면에 “불합격”이 출력됩니다. 70은 80 이상이 아니라서 if의 조건이 거짓이 되고, 컴퓨터는 else 아래의 명령을 실행하기 때문입니다.
조건이 세 개 이상일 때는 elif를 사용합니다. 앞의 교통 요금 예시를 코드로 옮기면 다음과 같습니다. 여기서는 나이를 15세로 가정했습니다.
age = 15
if age <= 7:
print("무료")
elif age <= 18:
print("할인 요금")
elif age >= 65:
print("무료")
else:
print("성인 정가")
실행하면 “할인 요금”이 출력됩니다. 15는 7 이하가 아니라서 첫 번째 조건이 거짓이고, 18 이하이므로 두 번째 조건이 참이 되어 그 아래 명령이 실행됩니다. 조건이 참인 곳을 찾으면 나머지는 검사하지 않고 넘어갑니다. 위의 나이 기준(7세 이하, 18세 이하, 65세 이상)은 설명을 위해 정한 예시이고, 실제 요금 기준은 지역과 교통수단마다 다릅니다.
코딩으로 구현해 보는 실생활 속 예시
실제 프로그래밍에서 조건문이 어떻게 쓰이는지 구체적인 상황으로 살펴보겠습니다. 먼저 온라인 쇼핑몰에서 구매 금액에 따라 배송비를 정하는 상황입니다.
구매 금액이 5만 원 이상일 때만 무료 배송을 적용하고 싶다면, 구매 금액이 50000보다 크거나 같은지를 조건으로 검사합니다. 조건이 참이면 배송비는 0원이 되고, 거짓이면 기본 배송비 3천 원이 붙도록 코드를 짭니다.
price = 62000
if price >= 50000:
shipping = 0
else:
shipping = 3000
print(shipping)
실행하면 0이 출력됩니다. 구매 금액 62000원이 50000원 이상이라서 배송비가 0원이 되기 때문입니다. price를 30000으로 바꾸면 3000이 출력됩니다.
또 다른 예로 스마트 홈 시스템이 있습니다. 거실의 밝기를 측정하는 조도 센서가 있다고 가정해 봅시다. 방 안이 어두워지면 자동으로 불이 켜지게 하고 싶다면 조건문을 사용합니다.
밝기 수치가 기준치보다 낮으면 조명을 켜라는 명령을 내리고, 밝기가 충분하면 조명을 끄거나 그대로 둡니다.
조건문을 사용할 때 자주 범하는 실수와 주의점
조건문을 처음 다루는 분들이 자주 하는 실수가 몇 가지 있습니다. 아래 두 가지만 알아 두어도 오류를 크게 줄일 수 있습니다.
첫 번째 실수는 같음을 비교할 때 =를 하나만 쓰는 것입니다. 파이썬에서 =는 값을 넣는다는 뜻이고, 두 값이 같은지 비교할 때는 ==를 씁니다. 예를 들어 점수가 80점인지 확인하려면 if score == 80:이라고 써야 합니다. if score = 80:처럼 =를 하나만 쓰면 파이썬이 SyntaxError(문법 오류)를 내고 프로그램이 실행되지 않습니다.
score = 80
if score == 80:
print("80점입니다")
실행하면 “80점입니다”가 출력됩니다. ==로 score와 80이 같은지 비교했고, 같기 때문에 조건이 참이 됩니다.
두 번째 실수는 조건의 순서를 잘못 배치하는 것입니다. if와 elif는 위에서부터 차례로 검사하고, 처음으로 참이 된 곳만 실행한 뒤 나머지는 건너뜁니다. 그래서 조건이 겹칠 때는 범위가 좁은 조건을 먼저 써야 합니다.
예를 들어 90점 이상이면 A등급, 80점 이상이면 B등급으로 나누는 경우를 보겠습니다. 80점 이상 조건을 먼저 쓰면 95점도 그 조건에 걸려서 B등급이 나옵니다. 아래는 순서를 잘못 쓴 코드입니다.
score = 95
if score >= 80:
print("B등급")
elif score >= 90:
print("A등급")
실행하면 “B등급”이 출력됩니다. 95는 80 이상이라서 첫 번째 조건이 참이 되고, 그 아래의 elif는 검사하지 않기 때문입니다. 95점인데도 A등급이 나오지 않는 오류입니다. 순서를 바꿔 90점 이상을 먼저 검사하면 해결됩니다.
아래는 순서를 바로잡은 코드입니다.
score = 95
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
이번에는 “A등급”이 출력됩니다. 95는 90 이상이라서 첫 번째 조건에서 바로 실행되고 끝나기 때문입니다.
조건문 활용 능력을 높이는 실용적인 학습 조언
조건문은 눈으로 읽는 것보다 직접 코드를 입력해 실행해 보면 훨씬 빨리 이해됩니다. 숫자를 바꿔 가며 결과가 어떻게 달라지는지 확인해 보세요.
일상의 선택을 조건문 문장으로 바꿔 보는 연습도 도움이 됩니다. 예를 들어 “날씨가 맑으면 밖에서 먹고, 흐리면 배달을 시킨다”라는 생각을 if와 else를 쓴 코드로 옮겨 적어 보는 것입니다.
작은 프로그램을 만들어 보는 것도 좋습니다. 가위바위보 게임, 간단한 계산기, 놀이공원 입장료 계산기는 조건문만으로도 만들 수 있는 예제입니다. 만들다가 오류가 나면 원인을 찾아 고치는 과정에서 조건문을 더 정확히 이해하게 됩니다.
직접 실험해 보기: elif 순서가 바뀌면 결과도 바뀐다
조건문의 순서가 결과에 영향을 주는지 확인해 보려고, 맥에서 conditions.py 파일을 만들어 python3로 직접 실행해 봤습니다. 같은 95점으로 elif의 순서만 바꿔서 두 가지로 써 봤습니다.
score = 70
if score >= 80:
print("합격")
else:
print("불합격")
age = 15
if age <= 7:
print("무료")
elif age <= 18:
print("할인 요금")
elif age >= 65:
print("무료")
else:
print("성인 정가")
score = 95
if score >= 80:
print("B등급")
elif score >= 90:
print("A등급")
if score >= 90:
print("A등급")
elif score >= 80:
print("B등급")
실행 결과는 아래 화면과 같았습니다. 70점은 불합격, 15살은 할인 요금이 나왔습니다. 95점은 같은 점수인데도 80 이상을 먼저 검사한 첫 번째 코드에서는 B등급이 나왔고, 90 이상을 먼저 검사한 두 번째 코드에서는 A등급이 나왔습니다.

저도 이 코드를 직접 실행해서, elif는 위에서부터 차례로 검사하다가 먼저 맞는 조건에서 멈춘다는 것을 결과로 확인했습니다. 점수나 나이를 바꿔 가며 실행해 보면 조건문의 순서가 훨씬 잘 이해됩니다.
조건문에 대해 흔히 가지는 오해와 진실
조건문이 많아지면 프로그램이 무조건 느려진다고 생각하는 분이 있습니다. 불필요하게 복잡한 조건문이 얽혀 있으면 읽기 어렵고 고치기도 어려워지는 것은 사실입니다.
하지만 일반적인 프로그램에서 조건문 몇 개가 늘어나는 정도로는 속도 차이를 느끼기 어렵습니다. 조건문 개수를 줄이는 것보다 읽기 쉽고 정확하게 쓰는 것이 더 중요합니다.
조건문이 너무 단순해서 쓸모가 적다고 생각하는 것도 오해입니다. 게임 속 캐릭터가 공격할지 도망갈지 정하는 것도, 웹사이트가 로그인한 사용자의 권한에 따라 다른 메뉴를 보여 주는 것도 조건문을 사용합니다. 조건문은 대부분의 프로그램에서 기본적으로 쓰이는 문법입니다.
읽기 쉬운 조건문 작성 요령
조건문은 결과가 맞는 것이 가장 중요하고, 그다음으로 읽기 쉽게 쓰는 것이 중요합니다. 아래 두 가지를 기억해 두면 도움이 됩니다.
첫째, 조건이 서로 겹칠 때는 순서가 결과를 바꿉니다. 앞에서 본 90점과 80점 예시처럼 범위가 좁은 조건을 먼저 검사해야 원하는 결과가 나옵니다. 조건이 서로 겹치지 않는다면 순서는 결과에 영향을 주지 않고, 이때 어떤 조건을 먼저 검사하든 속도 차이는 보통 아주 작습니다.
둘째, 같은 조건이 여러 곳에 반복되면 하나로 묶거나 함수로 분리합니다. 같은 내용이 여러 곳에 있으면 나중에 고칠 때 한 곳을 빼먹기 쉽기 때문입니다.
조건문이 길어졌다면 정말 필요한 조건인지 한 번 더 살펴보세요. 짧고 명확한 조건문이 나중에 읽고 고치기 쉽습니다.




댓글 0
첫 댓글을 남겨보세요.