public class a {

 public static void main(String[] args){
  
  int a, b;
  a = 0;
  b = 0;
  
  while(++a<101)
  {
   if(a%5!=0 || a%7!=0)
   continue;
   
   b++;
   System.out.println(a);
  }
  System.out.println(b+"(개)");
  
 
 }
}


100이하의 자연수 중에서 5의 배수이자 7의 배수인 정수를 전부 출력하고, 그 수를 세어보는 프로그램인데

다른 건 다 이해가는데 'if(a%5!=0 || a%7!=0)' 이 부분이 이해가 안간다.


5의 배수가 아니거나 또는 7의 배수가 아니면 나머지 조건을 생략하고 다시 위로 올라가라는 건데

5,10,15,20,25,30,35.....100

7,14,21,28,35.......98

이렇게 5의 배수이거나 또는 7의 배수잖아?

그래서 5,7,10,14,15,20,21........100 이런 경우가 false라서 continue 아랫 부분이 실행되는 거고...맞지?


근데 결과가

35

70

2(개)


이렇게 나온다.


그리고 내가 예측한 결과는 'if(a%5!=0 || a%7!=0)'이 부분에서 ||를 &&로 고쳐친 'if(a%5!=0 && a%7!=0)와 같다.

즉, 'if(a%5!=0 && a%7!=0)를 넣은 결과가

5

10

14

15

.

.

.

100

32(개)


이렇게 나온다.

왜 결과가 반대로 나오는 지 모르겠다.

왜 그런지 속 시원히 알려줘~