【发布时间】:2016-12-03 06:05:30
【问题描述】:
我正在尝试使用 2 个循环将值分配给二维数组。目标是数字是 0 或 16777215。使用我制作的代码时,所有打印的 300 个值都使用 16777215。我已经替换了 if 和 else 语句中的两个值,并且它还在继续。这些值应该在 0 到 16777215 之间随机选择。我目前的代码如下:
public static void main(String[] args) {
int[][] draw = new int[400][300];
for (int i = 0; i < draw.length; i++) {
for (int b = 0; i < draw[i].length; i++) {
if (Math.random() > 0.5) {
int x = 16777215; // num for black
// should normally be 0 but for trial purposes, I used 16777215
draw[i][b] = x;
} else {
int x = 16777215; // num for white
draw[i][b] = x;
}
}
}
for (int i = 0; i < draw.length; i++) {
for (int b = 0; b < draw[i].length; b++) {
System.out.println(draw[i][b]);
//should be a random spread of 0 and 16777215 but 16777215 appears only every 300 lines in the output.
}
}
}
编辑:首先出现在 289,然后在添加 300(例如 589、889)
【问题讨论】:
-
黑白数字相同。 if 两边相同
-
OP 注意两个答案都是正确的,你的代码中有很多(编辑:好吧,我猜只是这两个)问题。
-
提示:你也应该避免使用所有这些硬编码的值。至少定义类似
private final static int BLACK = 16...的东西(但最好使用带有“自定义”int 值的枚举)。然后以draw[i][b] = BLACK为例。在这里有那个 x 变量是没有意义的!
标签: java arrays multidimensional-array