답이 number % i == 0 이던데
- for(i=2; i < number; i++)
if(numbet % i == 0)
return 0;
return 1;
여기서 for 문 안에 있는건 if문 안의 return 0; 까지 인가요?
p.163의 해설을 보면 표 첫번째 줄에 i가 2 일때 isprime함수의 number은 2, i는 2 이고 이럴때 if문의 number % i 를 하면 2 % 2라 0이 나오잖아요. 그렇게 되면 if문이 참이니깐 return 0; 이 되죠? 그러면 이상태로 0이 리턴 되고 isprime함수는 종료인가요?
아니면 for문 밖에 있는 것 같은 return 1;도 실행인가요?
표에는 반환값이 0 인데 cnt가 1로 바뀌어서 의문입니다.
안녕하세요. 길벗 수험서 운영팀입니다.
1. for 문 안에 있는건 if문 안의 return 0; 까지 인가요?
[답변]
예, 그렇습니다.
if문의 경우 중괄호{}가 존재하지 않으므로, 바로 아래 수식인 return 0;까지가 하나의 구문임을 의미합니다.
for문 또한 마찬가지 입니다.
중괄호{}가 존재하지 않으므로 다음 줄인 if문까지가 하나의 구문이므로 for문은 return 0;까지가 되겠습니다.
2. p.163의 해설을 보면 표 첫번째 줄에 i가 2 일때 isprime함수의 number은 2, i는 2 이고 이럴때 if문의 number % i 를 하면 2 % 2라 0이 나오잖아요. 그렇게 되면 if문이 참이니깐 return 0; 이 되죠? 그러면 이상태로 0이 리턴 되고 isprime함수는 종료인가요?
[답변]
예, 맞습니다.
사용자 정의 함수에서 return 함수를 만나는 경우 해당 사용자 정의 함수는 return 값을 반환하며, 즉시 종료됩니다.
3.표에는 반환값이 0 인데 cnt가 1로 바뀌어서 의문입니다
[답변]
디버깅표는 누적되는 변수값을 단순 기입하여 좌우가 맞지 않는 경우가 있습니다.
직접 변수의 값이 바뀌는 것을 확인해 가며 대조해 보세요.
행복한 하루되세요.^^
-
*2018-09-19 11:53:11
안녕하세요. 길벗 수험서 운영팀입니다.
1. for 문 안에 있는건 if문 안의 return 0; 까지 인가요?
[답변]
예, 그렇습니다.
if문의 경우 중괄호{}가 존재하지 않으므로, 바로 아래 수식인 return 0;까지가 하나의 구문임을 의미합니다.
for문 또한 마찬가지 입니다.
중괄호{}가 존재하지 않으므로 다음 줄인 if문까지가 하나의 구문이므로 for문은 return 0;까지가 되겠습니다.
2. p.163의 해설을 보면 표 첫번째 줄에 i가 2 일때 isprime함수의 number은 2, i는 2 이고 이럴때 if문의 number % i 를 하면 2 % 2라 0이 나오잖아요. 그렇게 되면 if문이 참이니깐 return 0; 이 되죠? 그러면 이상태로 0이 리턴 되고 isprime함수는 종료인가요?
[답변]
예, 맞습니다.
사용자 정의 함수에서 return 함수를 만나는 경우 해당 사용자 정의 함수는 return 값을 반환하며, 즉시 종료됩니다.
3.표에는 반환값이 0 인데 cnt가 1로 바뀌어서 의문입니다
[답변]
디버깅표는 누적되는 변수값을 단순 기입하여 좌우가 맞지 않는 경우가 있습니다.
직접 변수의 값이 바뀌는 것을 확인해 가며 대조해 보세요.
행복한 하루되세요.^^