用户指定了2d数组元素值

时间:2016-02-23 09:39:12

标签: java arrays 2d elements

        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;
                }
            }
        }

用户指定阵列的高度和宽度,以及多少&#34;宝藏&#34;这个数组包含。代码应循环遍历所有数组元素,给它们一个0或1的值(直到用户输入的宝藏数达到0)。

宝藏指示是1。

现在for循环只针对第一个([0] [0])元素。

4 个答案:

答案 0 :(得分:1)

你应该消除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。

答案 1 :(得分:0)

删除while循环,因为它强制只运行mapArray [0] [0]而while循环在宝藏变为零时结束。这最终会终止所有循环。

答案 2 :(得分:0)

我认为&#34;宝藏的数量和#34;与&#34; 1&#34;相关联。因此,如果用户希望阵列的高度为4,宽度也为4,并且&#34;宝藏&#34;例如3我会期待这样的事情:三个&#34; 1&#34;和休息&#34; 0&#34;

<input type="submit" class="app-button" id="btnSearch" value="Aply Filters"><br>
<input type="submit" class="app-button" id="btnClearSearch" value="Clear Filters">

在这种情况下,您可以尝试

.app-button{
     list-style: none;
     text-align: center;
     background-color: #01AAAD;
     width: 150px;margin:0;
     line-height: 60px;
}

答案 3 :(得分:0)

为了理解你的代码,我鼓励你拿笔写下你的代码所做的事情。

例如:

  • 输入高度= 2,宽度= 3,宝藏= 1
  • 步骤1 i = 0且高度&gt; i =&gt; 2&gt; 1 =&gt;继续(高度= 2,宽度= 3,宝藏= 1,i = 0)
  • 步骤2 j = 0且宽度&gt; j =&gt; 3&gt; 0 =&gt;继续(高度= 2,宽度= 3,宝藏= 1,i = 0,j = 0)
  • 第3步宝贝&gt; = 0 =&gt; 1&gt; = 0 =&gt;继续
  • 步骤4 mapArray [i] [j] = rnd.nextInt(2); =&gt; mapArray [0] [0] = rnd.nextInt(2);
  • 第5步宝藏 - = 1 =&gt; 宝藏= 0 (身高= 2,宽度= 3,珍宝= 0,i = 0,j = 0)
  • 第6步宝贝&gt; = 0 =&gt; 0&gt; = 0 =&gt;继续[我认为你不想要这个,但这不是导致你的问题的问题]
  • 第7步 mapArray [i] [j] = rnd.nextInt(2); =&gt; mapArray [0] [0] = rnd.nextInt(2); ...

现在提供一些提示:

  

代码应遍历所有数组的元素,给它们一个0或1的值(直到用户输入的宝藏数达到0)。

你可以把它翻译成:我需要把我的X宝藏放到我的地图上。

所以while循环是一个好主意,但它确实在错误的地方。删除2 for循环并仅保留while循环。

现在想想并找到一种方法,将这些宝藏一个接一个地放在地图上的正确位置。

稍后,如果你需要运行你的地图,那么你将需要你的2 for循环。例如,显示地图可能很有用。

请勿忘记检查输入是否有效。