我想生成一个随机数来应用于某些数组,以便在每次执行中获得不同的元素。 阵列包含运动产品的名称(产品,尺寸,价格等)。通过这样做,我想制作可以进入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;
}
这是我在main中调用generaProductos()
方法的地方:
switch (opt){
case 1:
generaProductos alm = new generaProductos();
alm.generaProductos();
当我执行我的代码时,我总是收到这个:
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
Botas Futbol Hombre Marron S 16.99
(在英语中,它将是足球靴男子棕色尺码S 16.99)
答案 0 :(得分:10)
将0到1(不包括)之间的浮点值转换为(int) Math.random() * 3
,结果为0,然后将0乘以3,即0。
变化
(int) (Math.random() * 3)
到
UTF-8
答案 1 :(得分:6)
num = (int) Math.random() * 3;
将始终为0
,因为优先顺序。
Math.random()
始终为< 1
,因此将其投放到int
会给你0,然后你加倍,仍然会得到0。
答案 2 :(得分:0)
您可以使用java的Math库生成随机整数。如果您使用 Math.random()
,那么您将获得仅在0.0到0.1之间的随机数
如果你想在大范围的整数之间取随机整数,你可以通过提供两个整数输入来使用以下函数,即Min&amp;最大号码
public static int RandInt(int max, int min){
return ((int) (Math.random()*(max - min))) + min;
}