class Example
{
public static void main(String[] args)
{
for(int i=1; i<=100; i++)
{
if(isPrimeNumber(i))
System.out.println(i);
}
}
public static boolean isPrimeNumber(int num)
{
if(num==1)
return false;
for(int i=2; i<num; i++)
{
if(num%i==0)
return false;
}
return true;
}
}
1이상 100이하의 소수를 출력하는 프로그래밍인데요.
일단 첫 번째 for에서 i=1이되고 그 다음에 1<=100이라서 if로 넘어가고, if에서 메소드 명령문 isPrimeNumber(1)이 명령하면
아래 isPrimeNumber에서 실행하는데, i가 1이니까, num도 1이고, num이 1이면 false로 리턴되는데, 여기서 리턴값이 거짓이니, 위에 if문에서 else가 있어야 하는데, else가 없는게 이해가 안 됩니다. 만약 else가 생략되어 다음 단계로 넘어간다고 치면, i=2로 적용되어 num=2로 적용, num=1이 아니니까 아래 for문으로 넘어가서, i=2인데, i<2가 아니잖아요? 왜냐하면 위에서 num=2를 받았으니까 int=num인데... 애초에 성립이 안 되는 건데...
1. for(int i=2; i<num; i++)
{
if(num%i==0)
return false;
}
return true;
}
여기서 i++은 뭐 다음에 시행되는 거죠? if문 다음에 시행되는 거 맞나요?
2. 계속 i=num이 되어서 i<num 성립이 안 되어서 if문으로 넘어갈 수 없는데...뭔지 모르겠습니다.
궁금합니다! 고수님들!!
도와주세요!
아! 이해 함! 안 도와줘도 됨!