isprime문 부분에서
위쪽ㄱ에
int = i;
for i = 2; , i<number; , i++)
if ( )
return 0;
return 1;
이렇게 나와있고 빈칸이 number % i == 0 이라고 정답지에 나와있는데
디버깅 표 보니까 i가 2 ㅡ number도 2일때 return값 1을 받는다고 되있는데
대입해보면 2 % 2 = 0 으로 괄호 조건에 부합하고, 그렇다면 return값으로 0을 가져야 하는거 아닌가요??
다른분이 질문한것도 봤는데 디버깅표를 일차원적으로 보지말라고 답변되어 있는데,
디버깅표가 확실히 구분되어있어 그 문제는 아닌거같습니다.
안녕하세요. 길벗 수험서 운영팀입니다.
isprime(2)가 호출되었을 때 설명드리겠습니다.
isprime 함수 내에서 number는 2를 갖고 for문으로 들어갑니다.
for (i = 2; i < number; i++)
이 때 for문에 진입하기 전에 조건절을 먼저 참인지 거짓인지 조회해야 합니다. 조건이 맞지 않으면 for문 안의 if문을 수행하지 않기 때문이죠.
number가 2로 들어왔기 때문에 i의 초기값 2와 비교해서 2<2는 거짓이기 때문에 for문을 수행하지 않고, 바로 다음 절인 return 1을 수행하여 반환값이 1이 되는 것입니다.
행복한 하루되세요.^^
-
*2018-09-28 10:40:47
안녕하세요. 길벗 수험서 운영팀입니다.
isprime(2)가 호출되었을 때 설명드리겠습니다.
isprime 함수 내에서 number는 2를 갖고 for문으로 들어갑니다.
for (i = 2; i < number; i++)
이 때 for문에 진입하기 전에 조건절을 먼저 참인지 거짓인지 조회해야 합니다. 조건이 맞지 않으면 for문 안의 if문을 수행하지 않기 때문이죠.
number가 2로 들어왔기 때문에 i의 초기값 2와 비교해서 2<2는 거짓이기 때문에 for문을 수행하지 않고, 바로 다음 절인 return 1을 수행하여 반환값이 1이 되는 것입니다.
행복한 하루되세요.^^