문의한 코드는 삭제합니다.
위 코드로 파워셸에서 돌리면 출력이랑 같은 값이 나오는데 들여쓰기가 달라서 안되네요.. 마지막 두 줄을 같은 들여쓰기 행에 놓고 어떻게 코딩해야할지 모르겠어요. 또 검토를 보니 continue를 넣어야한다고 하는데 본교재 234쪽에 보면 '즉, 반복문 안에서 continue를 실행하면 continue 아래의 코드는 실행하지 않고 넌너뛴 뒤 다음 반복을 시작합니다.' 라고 되어있는데 심사문제 정답란에 continue를 넣게 되면 어찌 됐든 마지막 행인 i+=1은 건너뛰게 되는거 아닌가요..? 그 행을 건너뛰면 계속해서 같은 숫자만 맴돌게 될텐데 이 부분도 어떻게 해결하는지 모르겠습니다..ㅠㅠ 도와주세요
(도장_ 관리자님이 수정함 - 원문 제출일: 목요일, 28 1월 2021, 11:22 오후)
while True:
____________
____________
____________
____________
print(i, end=' ')i += 1
제시된 코드를 보면 출력과 i를 1 증가하는 것이 고정되어 있습니다.두 개의 if 조건식을 작성해서 조건을 만족하게 작성하면 됩니다.
심사문제를 제출했을 때 나오는 해설을 다시 옮기면 다음과 같습니다.
while 반복문에서 print로 i의 값을 출력한 뒤 i를 1씩 증가시키고 있습니다. 따라서 print 윗부분의 코드를 완성하여 3으로 끝나지 않는 숫자를 출력해야 합니다.
먼저 3으로 끝나지 않는 숫자를 구하려면 i를 10으로 나눈 뒤 나머지가 3이 아닌지 검사하면 됩니다. 하지만 if i % 10 != 3:에서 i를 출력하더라도 그 아래에 있는 print에서도 i를 출력하므로 원하는 결과가 나오지 않게 됩니다. 따라서 아래에 있는 print에서 i가 출력되지 않도록 continue로 코드를 건너뛰어야 합니다.
3으로 끝나지 않는 숫자만 출력되도록 하려면 if i % 10 == 3:과 같이 if 조건문을 만들어서 3으로 끝나는 숫자일 때 continue로 건너뜁니다. 이렇게 하면 그 아래에 있는 print에서 3으로 끝나지 않는 숫자만 출력할 수 있습니다. 그리고 continue로 코드를 건너뛰면 아래에 있는 i += 1까지 건너뛰게 되므로 continue 위에 i += 1을 넣어주어야 합니다.
그리고 while 반복문에 True가 지정되어 있으므로 무한 루프입니다. 따라서 if 조건문을 사용하여 i가 stop보다 클 때 break로 루프를 중단해줍니다. 여기서는 숫자를 출력하는 print가 아래에 있으므로 i가 stop과 같을 때 break로 중단해버리면 stop의 값은 출력되지 않습니다(stop의 값을 출력하기 전에 break로 루프가 중단됨). 그러므로 stop의 값까지 출력하려면 i가 stop과 같을 때는 그냥 넘어가고 루프를 한 번 더 실행하여 i가 stop보다 클 때 루프를 중단하는 것입니다.해설은 코드 작성 순서대로 되어 있고, 코드를 작성하는 법을 안내합니다.
1번째 단락은 전체 코드 풀이에 대한 개요이고,
2, 3번째 단락은 첫 번째 if를 어떻게 작성할 것인가,
4번째 단락은 두 번째 if를 어떻게 작성할 것인가입니다.
첫 번째 if는 continue로 풀고, 두 번째 if는 break로 풀라는 것입니다.
또한, 코드 설명을 문장으로 설명한 것이므로 문장을 해석해서 다시 코드로 옮기면 됩니다.
continue로 i += 1을 건너 뛰는 부분이 문제라면 해당 if 블록 안에 해당 코드를 추가하면 됩니다.
심사 문제 해설을 다시 잘 보시면
그리고 continue로 코드를 건너뛰면 아래에 있는 i += 1까지 건너뛰게 되므로 continue 위에 i += 1을 넣어주어야 합니다.
문장을 잘 읽으세요. 잘 읽어보시면 정답이 문장으로 전부 제시되어 있습니다.
코딩 도장의 심사 문제는 학습한 내용을 이해하고 있는지 확인하고, 실습을 통해 더 깊이 이해하게 하는 것이 목적이므로 가능하면 연습문제부터 심사문제까지 단계별로 제시하고, 해설에서는 코드 수준에 해당할 정도로 설명을 제시합니다. 이해도가 높다면 코드를 작성하고 심사를 통과할 것이고, 이해도가 낮다면 심사문제 해설을 보면서 코드로 작성하는 과정을 거치게 됩니다. 이 과정이 어렵고 힘들다고 느껴지지만, 조금 어렵고 힘들다고 느껴지는 게 실제로 학습이기 때문에 반드시 필요한 과정입니다. 그만큼 성장한다는 뜻입니다. 인지학습에서 강조하는 것은 스스로 생각하고 머리를 그만큼 쓰게 만드는 것이고, 그게 어렵다는 느낌이고 잘 모른다는 느낌이지만, 학습자는 그만큼 확실하게 성장한다는 것입니다.
해설을 꼼꼼하게 읽고 참고하세요.