본문 바로가기

파이썬

[ 코랩과 파이썬 ] 8. python 조건 반복문 while, else, 무한 반복

반응형

for 문은 몇 번을 반복할지 알고 있는 경우에 사용하지만, while 문은 반복의 횟수가 명확하지 않을 때 사용한다.

 

1) while 조건 else 구문

 

while 조건문과 함께 쓰여 조건이 참인 경우 해당 실행 명령 블록을 계속 반복하고, 조건이 거짓일 경우 반복을 멈추게 된다. 예를 들어 i 가 1부터 시작해서 10보다 작을 때까지 반복하라고 while 문을 구성하면 i 가 10이되면 더 이상 반복문을 실행하지 않고 멈추거나 다른 명령문을 수행하게 된다.

 

while <조건문>:
     <실행문1>
else:
     <실행문2>

 

#  while 문을 사용해 1부터 10까지 더하기
i = 1               # 반복을 시작할 초기값 지정
sum = 0             # 합계 초기값 지정
while i <= 10:      # 10보다 작거나 같을 때까지 반복
  sum += i          # sum 값에 i 값을 합쳐서 다시 sum에 저장
  i += 1            # 다음 반복 값을 i에 저장
else:
  print(sum)

# for 문을 사용해 1부터 10까지 더하기
sum = 0
for i in range(11):
  sum += i
else:
  print(sum)

 

2) while 문에 if 조건문 추가

 

while 문에 반복하기 위한 조건문을 쓰지만, 반복값을 다시 if 조건문으로 통제할 수 있다. 예를 들어 i 가 1보다 크다면 반복하라고 while 문을 썼다면, 무한 반복이 일어날 것이다. 이때 if 문을 사용해 i 의 값을 제어할 수 있다.

 

다음은 스타벅스에서 커피를 주문하고 수령하기 위해 대기를 하고 있는 예제이다. 나의 대기 번호는 10번이고 만약 3번 불러서 안오면 커피를 폐기한다고 한다.

 

waiting_no = int(input("대기번호:"))        # 대기 번호 10번 입력
call_no = 3                                 # 호출 횟수 3회(최기값)
while call_no >= 1:                         # 반복할 호출 조건
    print(f"대기번호 {waiting_no}번 손님, 카운터로 오십시오")
    call_no -= 1                            # call_no = call_no - 1 : 호출 1회씩 감소
    if call_no == 0:                        # 호출 3번을 다했다면 다음 명령문 실행
        print("커피를 폐기하겠습니다!")
    else:
      print(f"호출 {call_no}번 남았습니다")  # 아직 호출이 남았으면 몇 번 남았다고 알려줌.

 

3) while True: 무한 루프

 

while 문이 for 문과 구별되는 가장 큰 특징은 무한 반복을 할 수 있다는 것이다. while 문을 쓸때 조건을 잘 못 주면 무한 루프에 빠지기도 하고, 몇 번을 반복할지 알 수 없을 때 무한 루프를 돌려놓고 적당한 시기에 break 를 걸여서 빠져 나오기도 한다.

 

break를 반복문을 강제로 멈추게 하는 명령문으로 이와 비교되는 pass와 함께 다음 블로그에서 자세히 다루도록 하자.

while True:
    print("코랩에서는 Ctrl+M, Z를 누르면 무한 루트에서 탈출할 수 있습니다")  # () 문장이 계속 무한 반복 됨.

 

반응형