이거 한번 봐주세영...
이리온
C 언어입니당. 예를들어..
#include stdio.h
int _pn(int n);
main()
{
int pn=6;
int k = _pn(pn);
printf(%d,k);
fflush(stdin);
printf(Press ENTER to continue...\n);
getchar();
}int _pn(int n)
{
int i;
for(i=2;in;i++)
{
if((n%i)==0)
return 1;
else
return 0;
}
}
문제없죠...
다음은 자바입니다..
class Say
{
public static void main(String[] args)
{
int pn=6;
Say ss = new Say();
int k = ss.pnk(pn);
}int pnk(int n)
{
int i;
for(i=2;in;i++)
{
if((n%i)==0)
return 1;
else
return 0;
}
}
}이러면 missing return statement 라고 에러가 나오네여...
음... 린턴값이 없다는건데 왜그런거죠?
-
윤슬이뿌잉
그러면요.. 소수판별하는 루틴을 저런식으로 하려면 어떻게 해야 할가요
임의의 수(n)를 받아 n을 2부터 n보다 작은수로 루프돌면서 나누다가 0 이 있다면 소수아님을 출력하기~ -
큰모듬
음 씨하고 자바하고 구문이 좀 틀리네요... C에서 저렇게 리턴을 받아 참과 거짓을 판별할수 잇잖아요...
자바는 그게 안되서리.. 다 아시겠지만 저 위에것은 소수를 판별하는 간단한 드 였습니당. 물론 찬님의 말처럼
n이2보다 작을때면 \소수아님\ 을 출력해주면 되겠죠... -
뭘봐요
음... 제가 생각하기에는 함수 끝 부분에서 return 0; 같은 부분을 넣어줘야할 것 같습니다.
저런식으로 어떤 조건하에 무언가를 리턴하게 되있는 부분은 컴파일러에서 위험요소로
생각해서 리턴이 안될수도 있다 라고 생각해서 그렇게 처리하는게 아닐까 합니다.
결론은 어떤 루틴으로든 무조건 실행 되는 리턴 구문이 있어야 합니다.
+ 쓰고보니 찬님하고 비슷한 말을 했군요.. 하하 -
천칭자리
int pnk(int n) 이 함수에서
n 이 2보다 작다면.. 어떤 값이 리턴될까요?? ^_^??