java 求质数。把 int y=0放在第一个for就能正常算出质数。为什么

class Main {
public static void main(String[] args) {
int y=0;
for(int m=2;m<=100;m++){
//把。int y=0; 放这就能算出质数。为什么
for(int a=2;a<m;a++){
if(m%a==0){
y++;
}
}
if(y==0){
System.out.print(m+" ");

  }
  

}
}
}

这是算2-100内的素数:
放在循环里是对的,外层变量m每循环一次,就要y来计数
y=0就表示有一个素数

如果放在循环外y就不停的累加,不再回到0,所以只有当m==2时,输出一个素数