我想生成一个随机数来应用于某些数组,以便在每次执行中获得不同的元素.阵列包含运动产品的名称(产品,尺寸,价格等).通过这样做,我想制作可以进入String的随机产品,但是在程序的每次执行中,我都得到相同的产品.
问题出在哪儿?
以下是generaProductos类中的代码:
public void generaProductos() {
int num;
for (int i=0;i<3;i++){
num = (int) Math.random() * 3;
String cliente = tipoProducto[num] + " " + deporte[num] + " " +
destinatario[num] + " " + color[num] + " " + tallaRopaAdulto[num]
+ " " + preciosIVA[num];
System.out.println(cliente);
}
return;
}
Run Code Online (Sandbox Code Playgroud)
这里是我generaProductos()在main中调用方法的地方:
switch (opt){
case 1:
generaProductos alm = new generaProductos();
alm.generaProductos();
Run Code Online (Sandbox Code Playgroud)
当我执行我的代码时,我总是收到这个:
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
(在英语中它将是足球鞋男子棕色尺码S 16.99)
Era*_*ran 10
您将浮点值在0和1(不包括)之间转换int为0,然后将0乘以3,它仍为0.
更改
(int) Math.random() * 3
Run Code Online (Sandbox Code Playgroud)
至
(int) (Math.random() * 3)
Run Code Online (Sandbox Code Playgroud)
num = (int) Math.random() * 3;
Run Code Online (Sandbox Code Playgroud)
将永远是0,因为优先顺序.
Math.random()总是< 1如此施展它int会给你0,然后你成倍,仍然得到0.