无法实现10×10二维数组生成效果的Java代码问题求助
代码问题说明
- 你当前代码的核心问题出在内层for循环的终止条件
j>=1,这个限制会导致所有行的第0列(数组索引从0开始的第一列)永远不会被赋值,始终保持int数组的默认初始值0。 - 目前你的代码逻辑已经可以实现「第i行从第
9-i列开始,从右到左依次填充1、2、…、i」的效果,如果你预期实现的是标准的右下三角填充(第9行整行填充1~10),只需要把内层循环的终止条件修改为j>=0即可。 - 如果你需要实现其他填充规则(比如左下三角、左上三角、对角线填充等),只需要调整内外层循环的索引对应关系就行。
修正后代码(对应右下三角填充场景)
public static void main(String[] args) { int A[][] = new int [10][10]; for (int i = 0; i <= 9; i++) { // 仅修改终止条件为j >= 0 for (int j=9-i, n=1; j>=0; j--) { if (j <= 9) { A[i][j] = n++; } } } for (int i=0; i<10; i++) { for (int j=0; j<10; j++) { System.out.print(A[i][j]+"\t"); } System.out.println(); } }
内容的提问来源于stack exchange,提问作者north21
相关产品推荐
相关产品推荐

