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循环,因为它可以防止ij递增直到结束,这就是为什么只分配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/

10-12 01:00