import java.util.*;
public class E09_FindPrimes
{
public static void main(String args[])
{
int max=100;
if(args.length!=0)
max=Integer.parseInt(args[0]);
for(int i=1;i<max;i++)
{
boolean prime=true;
for(int j=2;j<i;j++)
if(i%j==0)prime=false;
if(prime)
System.out.println(i);
}
}
}
if(args.length!=0)
max=Integer.parseInt(args[0]);
这句是什么意思?boolean prime=true;跟后面的prime=false有什么联系?

解决方案 »

  1.   

    //如果用户传进来的参数个数不为0
    if(args.length!=0) 
    //eg:>java E09_FindPrimes param1,此时args[0]=param1,Integer.parseInt(args[0])表示把
    //param1的值转为整型
    max=Integer.parseInt(args[0]);
      

  2.   

    if(args.length!=0) 是判断在命令行运行程序时同时输入的参数,如 java ***.class  param
    ,args.length指得是param得个数,此时param属于String 类型,之后就转化为你想要得类型,
    max=Integer.parseInt(args[0]); 把param得第一个参数转化为int 型。首先把任意值看成是prime,所以置prime=true,但如果能被某个数整除得话,即if(i%j==0)则说明不是prime,之后就把他prime=false;那么此时就不会执行下面得println了,非素数就不会被打印出来了。understand?
      

  3.   

    如果没了
    if(args.length!=0)
    max=Integer.parseInt(args[0]);会出现什么问题?
      

  4.   

    if(args.length!=0)
    max=Integer.parseInt(args[0]);
    这句是什么意思?
    if(args.length!=0)
    是判断从控制台接到的你输入的参数的长度
    Integer.parseInt(args[0]);是用整数包钻类解析你的参数(args[0])为整数
      

  5.   

    如果没了
    if(args.length!=0)
    max=Integer.parseInt(args[0]);
    也没有问题,只不过现在你的程序就默认的率选100之内的素数了。