筛选素数时遇到报错,想知道两个同样的变量y,为什么第一个没报错第二个却报错了呢?

public class $1000以内的质数 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] array=new int[1000];
		int i=0;
		while(i<1000) {
			array[i]=i+1;
            i++;
		}
		array[0]=0;
		for(int x=0;x<1000;x++) {
			if(array[x]==0)
				continue;
			for(int y=x+1;y<1000;y++)
				if(array[y]==0) //为什么这一个y没有报错
					continue;
				if(array[y]%array[x]==0)  //这个变量却报错了呢?
					array[y]=0;
		}
		for(int z=0;z<1000;z++)
			if(array[z]!=0)
				System.out.print(array[z]+" ");
	}

}

 

对array [x]求余数的话,应该也不能为0