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문으로 넘어갈 수 없는데...뭔지 모르겠습니다.


궁금합니다! 고수님들!!