for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
while (treasures >= 0) {
mapArray[i][j] = rnd.nextInt(2);
treasures -= 1;
}
}
}
用户指定阵列的高度和宽度,以及该阵列包含多少“珍宝”。代码应在数组的所有元素之间循环,为它们提供0或1的值(直到用户输入的宝物数量达到0为止)。
宝物指示为1。
现在,for循环仅针对第一个([0] [0])元素。
最佳答案
您应该消除while循环,因为它可以防止i
和j
递增直到结束,这就是为什么只分配mapArray[0][0]
的原因。
for (int i = 0; i < height && treasures >= 0; i++) {
for (int j = 0; j < width && treasures >= 0; j++) {
mapArray[i][j] = rnd.nextInt(2);
treasures -= 1;
}
}
请注意,如果
treasures < height * width
,则数组的某些元素默认情况下将包含0。关于java - 用户指定的二维数组元素值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35573829/