본문 바로가기
알고리즘

프로그래머스-스킬트리(부제 : For-else문에 대하여)

by forestlim 2021. 1. 17.
728x90
반응형

코딩테스트를 풀고 난 후 다른 사람의 풀이를 보는데 평소처럼 if~else를 쓴 것이 아닌 for~else를 쓴 구문을 보고 들여쓰기를 잘못했다고 생각했으나 나의 착각이었다. 

 

파이썬에서는 else가 for문과도 함께 쓰이기도 한다. for문을 사용하다보면, 루프 중간에 break문으로 빠져나오는 경우들이 있는데, break문이 걸려서 빠져나가는 지 아닌지를 판단이 필요한 경우가 있다.

즉, for~else문은 "for문에서 break가 발생하지 않았을 경우"의 동작을 else문에 적어준다고 보면 된다

 

이 때 else의 사용으로 간단하게 해결할 수 있습니다. 

 

for-else의 사용 예시

data=[1,2,3,4,12,5]
test=0
for num in data:
    if num > 10:
        test=1
        break
if test==0:
    print("10보다 큰 수 없음")
data=[1,2,3,4,12,5]
for num in data:
    if num > 10:
        break
else:
    print("10보다 큰 수 없음")

위의 두 개의 코드는 동일한 기능을 한다.

첫번째는 test라는 변수를 두어서 판별한 반면, 두번째는 for문에서 break가 발생하지 않았을 경우, 즉 10보다 큰 수가 없었다면 else문으로 넘어가서 바로 print되도록 쓴 것이다. 

728x90
반응형

댓글