Python/Syntax

[Python] while ~ else문

koosco! 2023. 1. 17. 01:24

if ~ else문을 이용하면 if 조건식에 있는 조건을 만족하지 못할 때 else에 있는 실행문이 실행된다.

if 조건문1:
  실행문1
else:
  실행문2

이런 조건을 while문에 대해서도 동일하게 적용할 수 있다.

while 조건문:
  실행문1
  ...
  if ~:
    break
else:
  실행문2

만약 while 조건문이 아니라 내부에서 break에 의해 반복문이 멈추면 else에 해당하는 실행문은 실행되지 않는다.

반면 while 조건문에 의해 while문이 멈춘다면 else에 있는 실행문이 실행되게 된다.

 

# 백준 16952: A -> B
a, b = map(int, input().split())
cnt = 0

while a != b:
    if b % 10 == 1:
        b //= 10
    elif b % 2 == 0:
        b //= 2
    cnt += 1
    if a > b:
        print(-1)
        break
else:
    print(cnt + 1)

while문을 사용할 때 여러 개의 조건을 사용한다면 flag를 사용하는 방법을 썼는데 while ~ else문을 사용하면 이런 상황에서 유용하게 구현할 수 있다.