본문 바로가기
Python

[Python] else : break checker

by ds31x 2023. 9. 18.

일반적으로 else의 경우, 앞서의 ifelif문들에서 실행된 block이 없는 경우 수행되는 것을 의미한다.

 

그런데 python에서는 forwhile과 같은 loop structure 에서도
else를 뒤에 붙여서 break로 해당 loop가 나왔는지를 체크할 수 있다.

 

정확히 말하면, loop structure 에서의 else
앞서의 loop structure에서 break로 종료되지 않은 경우에 수행된다.

  • 하지만, 다른 언어에는 없는 방식의 응용인데다...
  • 앞서의 조건에 걸리지 않았을 때만 수행된다는 else조건분기에서 의미와도 잘 맞지 않기 때문에
    많은 책들이나 tutorial에서 사용을 권하지 않는다.
  • 가능하다고 해서 해도 된다는 건 아님

때문에 loop structure에서는 else단순히 break checker로 여기는 게 좋다. (가급적 쓰지 말자.)

다음 code snippet을 참고하자.

n = range(1,10,2)

idx = 0

for idx in n:

    if idx % 2 == 0:
        print(f'{idx} is an even number!')
        break
    else:
        print(f'{idx} is not an even number!')
else: # break checker
    print('There is not an even number!')    

idx = 1
while (idx := idx+2) < 10:
    if idx % 2 == 0:
        print(f'{idx} is an even number!')
        break
    else:
        print(f'{idx} is not an even number!')
else: # break checker
    print('There is not an even number!')
728x90