java - 用户指定的二维数组元素值

标签 java arrays 2d element

        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/

相关文章:

java - 为什么 Sun 更喜欢 NoSuchMethodError + NullPointerException 而不是类检查?

java - 第三方功能区组件与 Microsoft Ribbon UI 许可证?

javascript - 如何在两个不同数组中的项目之间建立链接?

python - 如何在不使用 append,Python 的情况下将元素插入数组?

opencv - 立体校准后将相机 1 图像中的 2d 点投影到相机 2 图像

java - Spring Data 直接 Autowiring 存储库接口(interface)

java - 我可以在java中序列化字节数组吗?

c - 如何用较小的数组创建较大的数组?分割错误

java - 如何选择一条线

javascript - 在这个二维数组中找到最大的区域