固定一个愚蠢的东西静态int统一

时间:2014-09-14 04:35:01

标签: java static

以下是我输入的脚本。

import java.util.Random;

public class RandomPPHOnG2
{
    public static int uniform(int N)
    {
        return (int) (Math.random() * N);
    }
    public static void main(String[] args)
    {
        int M = Integer.parseInt(args[0]);
        System.out.println(uniform(M));
    }
}

但是,当我以java RandomPPHOnG2 100运行此程序时,我得到100.这不是我想要的数字。

我想从0到100得到一个随机数...特别是,我如何调整System.out.println(uniform(M));来打印0到M之间的数字?...

2 个答案:

答案 0 :(得分:2)

不要重新发明轮子。 Java具有Random类,该类已经使用nextInt方法提供此功能。

class Main
{
  private final static Random r = new Random();

  public static int uniform(int min, int max)
  {
    // +1 assumes inclusive range, [min,max]        
    return min + r.nextInt(max-min+1); 
  } 
}

答案 1 :(得分:0)

你编写的程序没有任何问题。

当我使用100编译并运行它(使用Eclipse和Java 8)作为命令行参数时,每次都会得到一个不同的数字。


该计划中唯一的缺点是文体:

  • import java.util.Random是多余的,因为您不能使用该类。
  • 您不会检查args的大小,因此您可能会遇到意外的异常。
  • 你不应该用大写字母开始变量名;例如MN应为mn
  • 班级名称对我没有任何意义......