Java math.random,仅生成0?

 

问题描述:

以下代码仅产生0;-;

我究竟做错了什么?

public class RockPaperSci {

  public static void main(String[] args) {
    //Rock 1
    //Paper 2
    //Scissors 3
    int croll =1+(int)Math.random()*3-1;
    System.out.println(croll);
  }
}

编辑,另一张海报建议修复它。int croll = 1 +(int)(Math.random()* 4-1);

感谢大家!


 

第 1 个答案:

你正在使用Math.random()哪个州

返回double带有正号(大于或等于0.0并小于)的值1.0

你正在将结果转换为int,返回值的整数部分,即0。

然后1 + 0 - 1 = 0。

考虑使用 java.util.Random

Random rand = new Random();
System.out.println(rand.nextInt(3) + 1);

我正在尝试重叠JPanel实例。将面板以完全相同的位置和大小直接放在另一个面板上。每次执行此操作时,它将另一个面板移到另一侧或下面,前一个面板在另一个更大的面板内部,并且其中 ...