나도코딩님 궁금한게있습니다 아까 함수안에 if문으로 level > 5 : print("절전모드")뭐 이렇게 조건을 세우셨는데 근데 level값이 5보다큰게 35일수도 있잖아요 그런데 왜 print("절전모드")라고만 나오고 왜 일반모드도 같이안나오나요?? 만약에 수가 35면 일반모드에 대한 식도 만족해서 일반모드도 출력되야 되지 않나요?
안녕하세요? If 문을 다음과 같이 적었다면 말씀하신 것처럼 될 수 있습니다. 가령 level 에 40 이라는 값이 저장되어 있다고 하면 일반 모드, 절전 모드가 모두 출력되는거죠. if level > 35: … 일반 모드 … if level > 5: … 절전 모드 … 여기서 if 는 서로 독립적으로 동작합니다. 첫 번째 if 의 조건이 만족하던지 말던지 두 번째 if 조건도 확인하게 됩니다. 그런데 우리 퀴즈에서 원하는 것은 ‘이것 또는 저것’ 입니다. 즉 첫 번째 if 의 조건이 만족하면 첫 번째 코드만 수행되고 이후의 조건은 확인하지 않고, 또는 만족하지 않는 경우 두 번째 if 의 조건이 만족하면 두 번째 코드만 수행되고 그 이후는 수행되지 않고 if 문을 벗어나는 것이죠. 이때 사용되는 것이 if / elif 입니다. If / if 는 각각 수행, if / elif 는 처음 조건이 만족하면 그 다음 조건은 확인하지 않는다는 점을 주의해주세요 :) 그래서 이렇게 아래와 같이 작성하면 level 이 40일 때는 40 > 35 라는 조건을 만족하므로 ‘일반 모드’ 가 출력되고 이후의 조건인 elif 는 확인하지 않습니다. level 이 10일 때는 10 > 35 라는 조건이 거짓이므로 첫 번째 if 문은 실행되지 않고 elif 에 있는 두 번째 조건을 확인하며, 두 번째 조건인 10 > 5 는 만족하므로 ‘절전 모드’ 만 출력된답니다. if level > 35: … 일반 모드 … elif level > 5: … 절전 모드 …
나도코딩님 궁금한게있습니다 아까 함수안에 if문으로 level > 5 : print("절전모드")뭐 이렇게 조건을 세우셨는데 근데 level값이 5보다큰게 35일수도 있잖아요 그런데 왜 print("절전모드")라고만 나오고 왜 일반모드도 같이안나오나요?? 만약에 수가 35면 일반모드에 대한 식도 만족해서 일반모드도 출력되야 되지 않나요?
안녕하세요?
If 문을 다음과 같이 적었다면 말씀하신 것처럼 될 수 있습니다. 가령 level 에 40 이라는 값이 저장되어 있다고 하면 일반 모드, 절전 모드가 모두 출력되는거죠.
if level > 35:
… 일반 모드 …
if level > 5:
… 절전 모드 …
여기서 if 는 서로 독립적으로 동작합니다. 첫 번째 if 의 조건이 만족하던지 말던지 두 번째 if 조건도 확인하게 됩니다.
그런데 우리 퀴즈에서 원하는 것은 ‘이것 또는 저것’ 입니다. 즉 첫 번째 if 의 조건이 만족하면 첫 번째 코드만 수행되고 이후의 조건은 확인하지 않고, 또는 만족하지 않는 경우 두 번째 if 의 조건이 만족하면 두 번째 코드만 수행되고 그 이후는 수행되지 않고 if 문을 벗어나는 것이죠. 이때 사용되는 것이 if / elif 입니다. If / if 는 각각 수행, if / elif 는 처음 조건이 만족하면 그 다음 조건은 확인하지 않는다는 점을 주의해주세요 :)
그래서 이렇게 아래와 같이 작성하면 level 이 40일 때는 40 > 35 라는 조건을 만족하므로 ‘일반 모드’ 가 출력되고 이후의 조건인 elif 는 확인하지 않습니다. level 이 10일 때는 10 > 35 라는 조건이 거짓이므로 첫 번째 if 문은 실행되지 않고 elif 에 있는 두 번째 조건을 확인하며, 두 번째 조건인 10 > 5 는 만족하므로 ‘절전 모드’ 만 출력된답니다.
if level > 35:
… 일반 모드 …
elif level > 5:
… 절전 모드 …