python 을 공부하다보면
for else , while else 에 대한 문법이 나오게 된다 .
이문법은 조금 생소하다 다른 문법에서는 이러문법이 존재하지 않기때문이다 .
for 문을 사용하게 될때 중간에 break 문을 통해서 빠져나와야하는경우가 있다.
그런데 우리가 break 문에 제대로 결러서 빠져나왔는가 ?? 모를땐
print() 을 찍어봐서 확인을 해봐야한다.
그런데 python 에선
for else 를 통해서 판단할 수있게 되어있다 .
for x in range(0 , 4):
print(x)
if x == 2:
print ('loop break')
break
else:
print ('loop end')
실행하게 되면
중간에 if x ==2 : 조건문 걸려서 break 로 빠져나오게 된다.
for x in range(0 , 4):
print(x)
pass
else:
print ('loop end')
만약에 break 없이 반복문이 끝났다면 그다음 else 문이 출력된다.
그런데 이러한 문법이 어떨때 쓰이게 될까?? 궁금증이 든다 .
굳이.. for else 문이 필요할까? ?
numbers = [1,2,3,4,5]
is_exsist_item = False
for number in numbers:
print(number)
if number==3:
is_exsist_item = True
break
if is_exsist_item:
print(is_exsist_item)
결과가 이렇게 나오게 된다.
numbers = [1,2,3,4,5]
is_exsist_item = False
for number in numbers:
print(number)
if number==6:
is_exsist_item = True
break
else:
raise Exception
만약 이렇게 된다면
하지만 만약에 조건문에 걸려서 break 에 걸리게 된다면 ,
numbers = [1,2,3,4,5]
is_exsist_item = False
for number in numbers:
print(number)
if number==3:
is_exsist_item = True
break
else:
raise Exception
else 문이 실행되지 않는다.
내가 만약에 반복문 도중에 break 문이 제대로 돌아갔는지 확인하기 위해서
for else 를 사용한다고 보면 되겠다.