如何使用带参数的随机类?

时间:2012-10-31 18:50:30

标签: java parameters

如何使用随机类创建参数?我这样做但它发出了一条错误信息。

import java.util.Random;

public class DiceSimulation { 
    public static void main(String[] args)
    {
          final int NUMBER = 10000;

         Random generator = new Random();

         int die1Value; int die2Value; int count = 0; int snakeEyes = 0; 
         int twos = 0; int threes = 0; int fours = 0; int fives = 0; 
         int sixes = 0;

         while (count < NUMBER) {

              die1Value = generator.nextInt(1, 6); 
              die2Value = generator.nextInt(1, 6);

              if (die1Value == die2Value)   { 
                    if(die1Value == 1) { snakeEyes++; } 
                    else if (die1Value == 2) { twos++; } 
                    else if (die1Value == 3) { threes++; } 
                    else if (die1Value == 4) { fours++; } 
                    else if (die1Value == 5) { fives++; } 
                    else if (die1Value == 6) { sixes++; }

              }     
              count++; 
         }

2 个答案:

答案 0 :(得分:4)

语法不正确。请阅读Java Doc。你可以写下面的方法。

 public static int generateBetween(int number, int max) {
    Random random = new Random();
    int generated = random.nextInt(max - number);//<--Between so Max -Number
    return generated+number;//<--Add here number so that it will be between
}

答案 1 :(得分:1)

这种语法错误:

  die1Value = generator.nextInt(1, 6); 
  die2Value = generator.nextInt(1, 6);

nextInt(int)只接受一个参数,因此请按以下方式更改:

  die1Value = generator.nextInt(7); //This will generate int between 0 & 6
  die2Value = generator.nextInt(7); //This will generate int between 0 & 6

如果您想要生成基于范围的随机数,请使用nextDouble()使用一种解决方法,该0.0生成1.0die1Value= 1+ (int)(generator.nextDouble()*5);//This will generate int between 1&6 die2Value= 1+ (int)(generator.nextDouble()*5);//This will generate int between 1&6 之间的值,如下所示:

  die1Value = min+ (int)(generator.nextDouble()*(max-min));
  die2Value = min+ (int)(generator.nextDouble()*(max-min));

语法:

{{1}}