Python
[2025.02.24] while 문
polibo
2025. 2. 24. 17:35
while 문 | for 문 |
- 범위가 지정되어 있지 않은 - 가변 길이에 따른 반복을 수행할 때 사용 - (종료 시점을 모를 때) |
- 길이가 고정된 반복을 수행할 때 사용 - (언제 끝날지 알고 있을 때) |
[복합 대입 연산자]
- += , -= , *=, /= , %= , **= , //=
[while 문]
- while 문을 사용할 때에는 종료가 되는 조건을 꼭! 넣어줘야 함.
- while 조건문:
- 수행할_문장
- while의 조건문이 참(True)인 경우 실행됨.
[while 문 예시]
- 1부터 10까지 출력
- count가 10보다 작을 때까지 계속 실행됨.
count = 0
while count < 10:
count += 1 # count = count + 1 , += : 복합대입연산자
print(count)

- while의 조건문이 거짓(False)인 경우 실행되지 않음.
- 따라서, while문 안의 코드에 도달할 수 없다는 경고창이 뜨는 것을 볼 수 있음.
while False:
count += 1
print(count)

- while문의 조건이 항상 True이기 때문에 다음 코드로 넘어가지 않고 계속 실행됨.
count = 0
while True: # 정지를 정해놓지 않으면 다음 코드로 넘어갈 수 X, 계속 실행됨
count += 1
print(count)
print(count) # 이 코드에 도달할 수 없습니다.

- 0부터 99까지 출력하기
- count가 100보다 작은 경우로 조건을 제한함.
# 0부터 99까지 출력하기
count = 0
while count < 100:
print(count)
count += 1

- 1부터 100까지의 숫자 중 짝수 출력하기
- 이 코드는 내가 작성한 코드
- count가 1부터 100까지 2와 나눈 나머지가 0인 경우 count를 출력하고, +1을 해줌.
# 1부터 100까지 짝수만 출력
count = 1
while count < 101:
if count % 2 == 0:
print(count)
count += 1

- 교수님께서 작성해주신 코드
count = 0
while count < 100:
count += 1
if count % 2 == 0:
print(count)
- 1부터 100까지 홀수 출력하기
# 1부터 100까지 홀수만 출력
count = 0
while count < 100:
count += 1
if count % 2 == 1:
print(count)

[while문 예제 만들어보기]
- 교수님께 저번 시간에 진행했던 자판기 만드는 코드를 수정하여 계속 실행되게 해보라고 하셨음.
- while 문을 사용하여 코드가 계속 실행되게 하였음.
- 사용자가 선택한 메뉴가 메뉴 리스트에 없으면 continue를 통해서 while 문의 제일 처음으로 돌아가게 되어 금액과 메뉴를 다시 선택하게 됨.
# 2025.02.24.
# 자판기 계속 실행되게 만들기
menus = ["펩시콜라", "코카콜라", "포카리", "물"]
price = [800, 900, 700, 500]
while True:
user_money = input("돈을 넣어주세요 : ")
user_money = int(user_money)
user_menu = input("음료를 골라주세요 : ")
if user_menu not in menus:
print("선택하신 메뉴가 없습니다. 다시 선택해주세요!")
continue
elif user_money >= price[0] and user_menu == menus[0]:
print(f"선택하신 음료는 [{menus[0]}] 입니다.")
user_money = user_money - price[0]
elif user_money >= price[1] and user_menu == menus[1]:
print(f"선택하신 음료는 [{menus[1]}] 입니다.")
user_money = user_money - price[1]
elif user_money >= price[2] and user_menu == menus[2]:
print(f"선택하신 음료는 [{menus[2]}] 입니다.")
user_money = user_money - price[2]
elif user_money >= price[3] and user_menu == menus[3]:
print(f"선택하신 음료는 [{menus[3]}] 입니다.")
user_money = user_money - price[3]
else:
print("돈이 부족합니다. 돈을 더 넣어주세요!")
print(f"거스름돈은 [{user_money} (원)] 입니다.")
print("감사합니다. 다음에 또 오세요^^!!")
print("===================================")
