인프런 커뮤니티 질문&답변

박민주님의 프로필 이미지
박민주

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

continue 와 break

continue, break 강의에서

작성

·

172

1

absent = [2, 5] # 결석 2,5번은 결석

no_book = [7] # 책을 깜빡했음

for student in range(1, 11): # 1,2,3,4,5,6,7,8,9,10

if student in absent: # 이 학생이 결석을 했다면

continue

print("{0}, 책을 읽어봐".format(student))

elif student in no_book:

print("오늘 수업 여기까지. {0}는 교무실로 따라와".format(student))

break

print("{0}, 책을 읽어봐".format(student))를 continue 밑에 쓰면안되고 왜 break 밑에 써야하나요 ?

답변 1

1

안녕하세요!

continue는 반복문에서 현재 순회중인 요소를 패스하고 다음 요소로 넘어가는 것이고,

break는 반복문 자체를 탈출하는 키워드입니다.

강의에서 예제로 들어주신 코드의 흐름은

1) 학생 한 명씩 리스트를 돌며

2) 만약 결석한 학생이면 다음 학생으로 넘어가고

3) 결석하지 않았는데 책이 없다면, 화난 선생님은 수업을 끝내고

학생을 교무실로 부르게 됩니다.

'~, 책을 읽어봐'를 continue 밑에 바로 쓰면

해당 학생이 책이 있는지 없는지를 체크하지 않고, 책을 읽으라는

지시를 한 것이기 때문에 책이 없는 경우 논리적 오류가 날 수 있습니다.

따라서 '출석한 학생'이 '책'을 읽어야 하므로

먼저 'absent'에 포함되어있는지 체크를 하고, 

책의 유무까지 체크를 한 다음에도 문제가 없다면

'책이 있는 출석한 학생'이라는 조건에 만족하기 때문에

break 다음에 써준 것 입니다.

박민주님의 프로필 이미지
박민주

작성한 질문수

질문하기