조건문이란 무엇일까요?
조건문이란 프로그래머가 명시한 불린 값(True나 False)에 따라서 특정 코드의 실행 여부를 결정하는 코드입니다. 조건문의 내용을 말로 이야기해보면 "만약 ~~~의 값이 True라면 아래 코드를 실행하여라" 정도로 이야기할 수 있을 것 같습니다.
조건문 if
파이썬에서의 조건문의 기본적인 문법은 아래와 같습니다.
if 불린값:
참일 때 실행할 코드
참일 때 실행할 코드
조건문과 관계없이 실행되는 코드
위의 코드를 실행한다고 가정하면 불린 값이 참(True)이라면 if문 안의 코드가 실행 될 것이고 거짓(False)이라면 실행되지 않고 넘어가게 될 것입니다. 이때 if문 안의 코드는 들여 쓰기가 되어 있는 코드들을 말합니다.
그럼 이제 제대로된 코드를 짜 보도록 합시다.
if True:
print("it's true") #실행 됨
if False:
print("it's false") #실행 안됨
print("always") #실행 됨
위의 코드를 실행 한다면 불린 값이 True인 if문 안의 코드만 실행되기 때문에 it's true만 실행될 것이고 if문 밖의 코드도 실행되기 때문에 always 또한 출력 되게 될 것입니다.
불린 값 True나 False를 직접 넣어주는 것은 별 의미가 없습니다. 그 대신 결과 가 불린값으로 나오는 비교 연산자들을 이용할 수 있습니다. ( > < == 등)
if 2 > 1:
print("1 is bigger than 2") #실행 안됨
if 1 < 2:
print("1 is smaller than 2") #실행 됨
2 > 1의 값은 False이므로 첫 번째 if문 안의 코드는 실행 되지 않을 것이고 1 < 2의 값은 True이므로 두 번째 if문 안의 코드는 실행 되어 1 is smaller than 2는 출력이 될 것입니다.
그런데 이것도 의미가 없는 조건문이긴 합니다. 실행할 때 마다 위의 조건문은 항상 실행 되지 않을 것이고 아래 조건문은 항상 실행 되기 때문에 굳이 조건문을 쓰는 의미가 없습니다. 변수를 사용하여 의미 있는 조건문을 작성해 봅시다.
age = int(input("만 나이를 입력하시오")) #비교연산자를 사용하기 위해 int로 형변환 필요
if age >= 19:
print("성인")
if age < 19:
print("미성년자")
19이상의 수를 입력한다면 성인이 출력될 것이고 19미만의 수를 입력한다면 미성년자가 출력될 것입니다.
조건문 elif
else if를 줄인 말입니다. if가 "만약 ~~~의 값이 True라면 아래 코드를 실행하여라" 였다면 elif는 "위의 조건문이 False이고 내가 True라면 수행하라" 라고 할 수 있습니다. 따라서 elif문을 사용하려면 위에 단 한개의 if문이 있을 때 사용할 수 있습니다.
age = int(input("나이를 입력하시오")) #비교연산자를 사용하기 위해 int로 형변환 필요
if age >= 20:
print("성인")
elif age >= 17:
print("고등학생")
elif age >= 14:
print("중학생")
elif age >= 8:
print("초등학생")
위의 코드를 실행했을 때 입력한 나이에 따라
20 이상이면 성인 출력
20 이상이 아니고 17 이상이면 고등학생 출력,
17 이상이 아니고 14 이상이면 고등학생 출력,
14 이상이 아니고 8 이상이면 초등학생 출력,
8 보다 작으면 아무것도 출력되지 않을 것입니다.
그런데 아래의 두 코드는 어떻게 다른 걸까요?
age = int(input("만 나이를 입력하시오"))
if age >= 19:
print("성인")
if age < 19:
print("미셩년자")
age = int(input("만 나이를 입력하시오"))
if age >= 19:
print("성인")
elif age < 19:
print("미셩년자")
실행 해 보았을 때 결과는 똑같이 나올 것입니다. 하지만 컴퓨터는 조금 다르게 실행 합니다.
위 코드는 아래 조건문이 if문이기 때문에 위 조건문의 조건의 True False여부와 상관없이 age < 19 의 값을 확인 합니다. 하지만 아래 코드는 elif이기 때문에 위 if문의 조건이 True 라면 age < 19의 값을 확인 하지않고 건너 뜁니다.
조건문 else
else문 안의 코드는 위의 if문과 else문이 모두 실행 되지 않았을 때 실행됩니다.
따라서 else문에는 조건을 써주지 않습니다.
age = int(input("나이를 입력하시오")) #비교연산자를 사용하기 위해 int로 형변환 필요
if age >= 20:
print("성인")
elif age >= 17:
print("고등학생")
elif age >= 14:
print("중학생")
elif age >= 8:
print("초등학생")
else:
print("미취학아동")
age가 8보다 작다면 미취학아동이 출력 될 것입니다.
exercise
조건문과 친해 지셨다면 백준에서 문제 하나를 풀어보고 마무리 하도록 합시다.
https://www.acmicpc.net/problem/9498
점수를 입력받고 성적을 출력하는 문제입니다. 위의 나이 예제를 참고하여 해결하여 봅시다.
a = int(input())
if a>=90:
print("A")
elif a>=80:
print("B")
elif a>=70:
print("C")
elif a>=60:
print("D")
else:
print("F")
'python' 카테고리의 다른 글
<누구나 쉽게 배우는 파이썬> 변수의 형변환 (0) | 2022.06.13 |
---|---|
<누구나 쉽게 배우는 파이썬> 자료형 (0) | 2022.06.11 |
<누구나 쉽게 배우는 파이썬> 연산자 (0) | 2022.05.31 |
<누구나 쉽게 배우는 파이썬> 파이썬 설치하기 (0) | 2022.05.27 |
<누구나 쉽게 배우는 파이썬> 자료의 저장 변수 (0) | 2022.05.27 |