注册 登录
编程论坛 JAVA论坛

求if(prime)在此表示什么意思

龙岩花界 发布于 2019-05-12 20:29, 2619 次点击
package chapter1;

public class PrimeNumber {

    public static void main(String[] args) {
        final int NUMBER_OF_PRIME=30;//定义显示的总数量
        final int NUMBER_OF_PRIME_PERLINE=10;//定义一行显示的数量
        int count=0;//记录素数的个数
        int number=2;//定义数字变量
        System.out.println("前三十个素数是:");
        while(count<NUMBER_OF_PRIME) {
            boolean isprime=true;
            for(int divisor=2;divisor<=number/2;divisor++) {
                if(number%divisor==0) {
                    isprime=false;//修改循环变量
                    break;//跳出循环;   
            }
        }
        if(isprime){
            count++;
            if(count%NUMBER_OF_PRIME_PERLINE==0) {
                System.out.println(number);
            }else
                System.out.print(number+" ");
               
        }
        number++;
    }

}
}
3 回复
#2
林月儿2019-05-12 20:34
是自己写的吗
#3
龙岩花界2019-05-13 10:30
回复 2楼 林月儿
书上的,这个算法其实很简单,但是书上的这个表示if(isprime)我有些不懂。
#4
rind2019-05-15 08:51
isprime起名不合乎规范。
看样子就是:是否为素数。
if(isprime)如果为素数怎么样。

isprime初始化为true,然后不为素数改为false,和数学证明中的反证法思维方式类似。
另外,有一个反例就可以结束循环(break),这样能提高效率。
1