작성
·
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 다음에 써준 것 입니다.