先来代码
- Java code
public class RandomBounds { static void usage() { System.out.println("Usage: \n\t" + "RandomBounds lower\n\tRandomBounds upper"); System.exit(1); } public static void main(String[] args) { if(args.length != 1) usage(); if(args[0].equals("lower")) { while(Math.random() != 0.0) ; //Keep trying System.out.println("Produced 0.0!"); } else if(args[0].equals("upper")) { while(Math.random() != 1.0) ; //keep trying System.out.println("Produced 1.0!"); } }}
if(args.length != 1) --------------这args是从哪来的呀!?(String[] args) 什么意思!
另外说这个程序是展示Random()函数的范围[0,1) , 怎么没看懂!
显示结果
usage:
RandomBounds lower
RandomBounds upper
------解决方案--------------------------------------------------------
String[] args是main方法的参数,在命令行输入java xxx时执行时,会将命令行各字符串作为参数存储在数组args中,在main中则可以通过这个数组取得输入的各参数。
------解决方案--------------------------------------------------------
这个args就是指的输入的参数 java class类名 参数1 参数2 参数3 ... 也可以没有参数。
另外说这个程序是展示Random()函数的范围[0,1);
if(args[0].equals("lower")) {
while(Math.random() != 0.0)
; //Keep trying
System.out.println("Produced 0.0!");
}
如果参数1是lower。 while(Math.random() != 0.0);循环直到产生0 停止循环打印 Produced 0.0!
如果参数1是upper。 while(Math.random() != 0.0);循环直到产生1 停止循环打印 Produced 1.0!但是你会发现是个循环,打印不出来。
------解决方案--------------------------------------------------------
楼上两位正解
------解决方案--------------------------------------------------------
Math.random()本来产生的随即数就时0~1之间的啊!你只不过用0.0和1.0控制循环退出而已。。。貌似时死循环,印象中Math.random()产的值达不到极端。。