如何在Java中将两个随机数量初始化为数组?我试过这个,但它已经给了我一大堆错误。在这个程序中,我想初始化数组的两个金额,帐户余额和帐号。
public class Bank {
public static void main (String args []){
int [] account;
account = new int [100];
for(int c = 1; c < 100; c++){
int account[c] = {Math.random() * 1000 , Math.random() * 100};
}
}
}
答案 0 :(得分:4)
您的数组是单维的,因此您无法将其元素初始化为两个值。此外,您不应该声明循环中每个元素的类型。您正在寻找的是一个二维数组 - 代码如下:
public class Bank{
public static void main (String args []){
int [][] account;
account = new int[100][];
for(int c = 0; c < 100; c++){
account[c] = new int[]{(int)(Math.random()*1000) , (int)(Math.random()*100)};
}
}
}
另请注意,循环应从0开始,而不是1(Java数组从0开始)。最后,请注意(int)
强制转换 - 您需要这样做以避免可能丢失精度错误。
答案 1 :(得分:2)
您的计划有一些改进:
0
而不是1
介绍了java.lang.Random
,因为它提供了从固定范围(0
... 1000
)获取新随机值的更简洁方法
public class Bank {
public static void main (String args[]) {
final Random rnd = new Random();
final int [][] account = new int [100][2];
for(int c = 0; c < 100; c++){
account[c] = new int[]{ rnd.nextInt(1000) , rnd.nextInt(1000)};
}
}
}
答案 2 :(得分:0)
而不是
int account[c] = new int............
你可能正在寻找
account[c] = new int............
答案 3 :(得分:0)
第一个account
是一个重复变量,第二个你不需要初始化器。
第三个问题是account[0]
不会被初始化。因此,更正后的版本如下所示:
public static void main (String args []){
int [] account;
account = new int [100];
for(int c = 0; c < 100; c++){
account[c] = (int) (Math.random()*1000);
}
}
或者如果你需要一个数组数组,你可以这样做:
int [][] account = new int [100][2];
for(int c = 0; c < 100; c++){
account[c] = new int[]{ Math.random()*1000 , Math.random()*100};
}