为什么int count=0;在for外面有每行十个的效果,在for里面没有。

public static void main(String[] args) {
    int count=0;
    for(int i=1;i<=100;i++) {
        //int count=0;   //没有每行10个的效果
        if(isPrime(i)) {
            System.out.print(i+" ");
            count++;
        }
        if(count%10==0) {
            System.out.println();
        }
    }
}
public static boolean isPrime(int num) {
    boolean flag=true;
    for(int i=2;i1;i++) {
        if(num%i==0) {
            flag=false;
            break;
        }
    }
    return flag;
}

放到for里面,岂不是每次for循环就重新设置为0了啊。你是要统计for循环过程中素数的数量,当然要在for循环外定义啊

写在for循环里面每次循环都会把count的值变为0

count在for循环外初始化,for循环中发现1个素数+1。count%10==0是判断count对10取取模的结果为0,即count是10的倍数时,所以每行10个。

计算机语言是一门语言
只不过它是用来和计算机说话用的而已
你把它翻译成人话再好好想想
如果放在for外面,那么我告诉你先记住一个数0,每隔一会我告诉你把这个数+1
如果放在for里面,那么每隔一会我告诉你记住一个数是0,然后我再让你+1
你觉得一样吗