Note/Python
04.for/while 반복문 (3)
HanJW96
2023. 2. 10. 15:39
반복문을 제어하는 break, continue
만약 반복문을 수행하다가 더 이상 반복이 필요없는 경우에는 어떻게 해야할까?
break statement
만약 반복문을 수행하다가 특정 조건에만 건너뛰고 싶은 경우에는 어떻게 해야할까?
continue statement
RE : 실제 자판기 기계는 돈을 한번 넣고 종료되지 않는다. 자판기 기계(프로그램)이 종료되는 경우는 커피가 다 떨어졌을 때이다.
Q. 커피가 다 떨어질 때 까지 자판기 프로그램을 반복하면서 실행한 뒤, 돈을 입력받아서 커피를 주는 프로그램을 작성해보자.
# 자판기의 커피 수량
coffee = 5
# 일단 작동!
while True:
if coffee ==0:
break
# 실제로는 자판기를 통해서 넣은 금액.
money = int(input("금액을 입력하세요."))
if money == 300:
# 실제로 이 파트는 자판기에서 커피를 뽑는 명령으로 대체된다.
print("Coffee")
# 이제 커피를 하나씩 줄인다.
coffee = coffee - 1
elif money < 300:
# 실제로 이 파트는 돈을 반환한다.
print("%d원을 반환합니다." % money)
else: # or elif money > 300:
print("Coffee")
# 커피를 뽑아주고
coffee = coffee - 1
# 이제 커피를 하나씩 줄인다.
print("%d원을 반환합니다." % (money-300))
# 거스름돈을 돌려준다.
# 커피가 다 떨어진 경우 알려야한다.
print("커피가 모두 소진되었으니, 관리자에게 문의해주세요.")
이때, break는 맨 위에 작성. 만약 커피가 없다면 더이상 반복할 필요가 없기 때문.

Q )이번에는 돈이 모자랄 때는, 추가로 돈을 입력받아 300원을 넘는 경우에 커피를 뽑아주는 프로그램을 작성해보자.
# 자판기의 커피 수량
coffee = 5
# 거스름돈 보관
change = 0
# 일단 작동!
while coffee > 0:
# 실제로는 자판기를 통해서 넣은 금액.
money = int(input("금액을 입력해주세요 : "))
# 잔고와 합쳐서 체크
money = money + change
if money == 300:
# 실제로 이 파트는 자판기에서 커피를 뽑는 명령으로 대체된다.
print("Coffee")
# 이제 커피를 하나씩 줄인다.
coffee = coffee - 1
elif money < 300:
# 돈을 더 받자.
print("돈이 모자랍니다. 추가로 금액을 입력해주세요.")
change = money #잔고를 저장
continue
====>>> 여기서 잔고를 머니에 넣고 맨 위로 돌아가서 다시 반복을 수행함 . 그 후 위에서 잔고와 합쳐서 금액을 확인하고 다시 아래로 내려옴


else: # or elif money > 300:
print("Coffee")
# 커피를 뽑아주고
coffee = coffee - 1
# 이제 커피를 하나씩 줄인다.
print("%d원을 반환합니다." % (money-300))
# 거스름돈을 돌려준다.
# 정산
change = 0
# 커피가 다 떨어진 경우 알려야한다.
print("커피가 모두 소진되었으니, 관리자에게 문의해주세요.")

->처음 금액을 150원을 넣었을 때 결과

->300원이 될때까지 계속해서 추가금액
-> 300원이 되자 커피를 주고 남은금액 반환
->커피가 모두 소진되면 메세지 출력
Q) nested loop를 연습해보자
반복문 안에 반복문 넣기
for dan in range(2,10):
print("-" * 10)
for number in range(1,10):
print("%d x %d = %d" % (dan, number, dan*number))
2~9단 까지 반복
구구단 사이사이에 -*10개 출력 => ----------
단은 2~9 number은 1~9
그러면 2x1 ~~~~2x9
3x1 ~~~~3x9 이런식으로 출력됨