rkwhrt57   1년 전

10번 줄을 if m<60: 이라고 바꾸면 틀리다고 나오는데 왜 그런지 알 수 있을까요 ?

osh1795   1년 전

if-elif-else는 서로 짝을 이루고 있습니다.

if (조건1):

   코드A~~~

elif (조건2):

   코드B~~~

else:

   코드C~~~

코드D

우선 if문을 들어오면 먼저 조건1과 비교합니다. 여기서 True가 나오면 코드A를 실행하고 elif와 else밑의 코드를 무시하고 바로 코드 D로 넘어갑니다.

즉, if문에서 조건을 만족하면 코드를 실행하고 밑의 elif, else를 무시합니다.

그럼 올리신 코드를 볼게요.

case1) m< 60

line4의 if에서 안걸리므로(False)이므로 바로 line10 else문으로 갑니다.

이때 line10이 if m<60이여도 문제없겠네요.

case2) m>= 60

if문의 조건을 만족하므로 코드를 실행하고 a, m을 출력합니다.

이때 line10이 else이므로 무시하고 프로그램이 종료됩니다.

만약 line10이 if문이라면 line4와 line10의 if문이 별개이므로 다시 한 번 if문을 실행하게 됩니다.

이때, line4에서 m을 60의 나머지로 바꿔주었으므로 항상 line10에서 m<60이라는 조건을 만족합니다.

즉, a와 m을 또 출력해서 총 2번 출력하여 틀리게 됩니다.

따라서, line10을 else로 작성해줘야 합니다.

rkwhrt57   1년 전

이해가 잘 되네용~ 감사합니다

댓글을 작성하려면 로그인해야 합니다.