조건문으로 흐름 제어하기
조건문으로 “이럴 땐 이렇게!” 만들기: if문 흐름 제어
이전 글에서 연산자와 계산 표현까지 쭉 달렸잖아요?
거기서 “계산해서 값 만들기”를 했다면, 이번엔 그 값을 바탕으로 결정(의사결정) 을 내리는 단계로 가볼게요.
솔직히 말하면, 프로그램이 진짜 “똑똑”해 보이기 시작하는 순간이 바로 여기예요.
어떤 조건이면 A, 아니면 B… 이런 느낌! 나름 재미가 있어요. 음… 좀 두근거리죠?
if문이 뭐 하는 애냐면요
if문은 한 줄로 요약하면 이거예요.
- 조건이 참이면 실행
- 조건이 거짓이면 다른 실행
예를 들면 이런 상황이요.
- 점수가 60점 이상이면 “합격”
- 아니면 “불합격”
아!, 그리고 사실 “조건”은 우리가 전에 배운 연산자랑도 연결돼요.
예: score >= 60 같은 비교가 조건이 됩니다.
if 기본 문법: 제일 단순한 형태
가장 기본 형태는 이렇게 생겼어요.
if 조건:
실행할 코드
예시로 점수 판정해볼게요.
score = 70
if score >= 60:
print("합격!")
score >= 60이 참이면print("합격!")이 실행돼요.- 아니면 아무 일도 일어나지 않아요. (이게 은근히 헷갈리기도 해요. 나도 처음에 “왜 출력이 안 나와?” 했거든요… 아! 그때 진짜 멘붕이었음)
if-else: 반대 상황까지 딱 처리하기
“조건이 참이면 A, 거짓이면 B”를 하고 싶으면 else를 쓰면 돼요.
if 조건:
A
else:
B
점수 예시를 완성해보면:
score = 45
if score >= 60:
print("합격!")
else:
print("불합격!")
이제는 어떤 값이 들어와도 결과가 나오죠.
진짜 프로그램은 보통 이런 “양자택일”이 많아요.
if-elif-else: 여러 갈래 길 만들기
이번엔 조건이 딱 2개가 아니라, 등급처럼 여러 단계일 때요.
그럴 땐 elif를 써요.
if 조건1:
결과1
elif 조건2:
결과2
else:
결과3
예를 들어 점수 등급을 나눠보자!
score = 82
if score >= 90:
print("A학점")
elif score >= 80:
print("B학점")
elif score >= 70:
print("C학점")
else:
print("아쉽지만 다음에!")
여기서 중요한 포인트 하나!
위에서부터 조건을 체크하고, 처음으로 참이 되는 블록만 실행해요.
그래서 “겹치는 조건”을 만들면 결과가 애매해질 수 있으니, 보통은 큰 조건부터 차례로 두는 게 좋아요.
조건은 꼭 숫자만 쓰는 게 아니에요
사실 조건은 숫자 비교뿐 아니라, “참/거짓” 형태면 다 돼요.
예를 들면 문자열도 비어있으면 거짓처럼 취급할 수 있어요(파이썬이 그런 식으로 동작하거든요).
text = ""
if text:
print("문장이 있어요!")
else:
print("문장이 비어있어요!")
솔직히 말하면 이건 처음에 보면 “어? 문자열도 조건이 된다고?” 싶을 수 있어요.
근데 이런 규칙을 알아두면 나중에 코드가 꽤 깔끔해져요.
“들여쓰기” 때문에 망하는 이야기(유머 포함)
나만 그런 거 아니죠?
if문에서 가장 흔한 실수는 이거예요:
- 조건은 맞는데
- 들여쓰기를 이상하게 해서 에러가 나거나
- 아예 실행이 안 되는 것처럼 보이는 상황
예를 들어 이런 식으로요:
score = 70
if score >= 60:
print("합격!")
이건 파이썬이 “여기 들여쓰기 필요해요!” 하고 바로 화를 내요.
나도 처음에 이거로 한참 삽질했어요.
에러 메시지는 진짜… 읽다 보면 결국 길이 보이더라구요. (이전 글에서 “오류 메시지 읽는 법” 했던 거 기억나요? 그거 엄청 도움돼요)
실습: 오늘의 미니미니 과제
콘솔에서 입력받은 숫자를 보고, 다음처럼 출력해보세요.
- 100~90: 최고
- 89~80: 좋음
- 79~60: 보통
- 59 이하: 아쉬움
힌트: if-elif-else 조합!
score = int(input("점수를 입력하세요: "))
if score >= 90:
print("최고")
elif score >= 80:
print("좋음")
elif score >= 60:
print("보통")
else:
print("아쉬움")
여기까지 하면 조건문 흐름이 “그냥” 눈에 잡히기 시작할 거예요.
음… 이제 뭔가 프로그램이 사람처럼 반응하는 느낌이 들지 않나요?
다음 글 예고: 반복문으로 효율 뽑아내기
자, 여기까지는 “한 번 결정”하는 흐름이었어요.
근데 생각해보면 현실은 항상 반복이 필요하잖아요?
- 점수 여러 개를 계속 판정해야 한다면?
- 1부터 100까지 계산해서 뭔가를 만들고 싶다면?
- 파일 안의 줄을 하나씩 읽고 조건 비교해야 한다면?
그래서 다음 글에서는 2-4. 반복문으로 효율 높이기 로 넘어가요.
반복문 나오면 코드가 확 줄고, 손으로 하나하나 치는 일이 거의 없어질 거예요.
다음 글에서 만나요!




