首页 > 解决方案 > 仅打印 (n*n) 数组的 NON-BOUNDARY 和 CORNER 元素

问题描述

我要为我的作业编写一个仅打印 (n*n) 数组的非边界和角元素的程序,这是代码的主要部分: 在此处输入图像描述

我得到的输出是这样的: 在此处输入图像描述

如您所见,非边界元素(6、7、10、11)不在其正确位置,我认为这是因为循环中的制表符空格打印不正确。(我的代码完全是一团糟)我想要一些帮助或建议来解决这个问题。谢谢!

标签: java

解决方案


我通常发现扁平化事物(特别是 if 条件),并将条件放入布尔返回方法中会有所帮助。尝试类似的东西

for (int i = 0; i < n; i++) {
  for (int j = 0; j < n; j++ {
    if (isCorner(i,j,n) || !isEdge(i,j,n)) {
//...
    } else {
//...
    }
  }
  System.out.println();
}

在哪里isCorner(i,j,n)isEdge(i,j,n)被定义为

public boolean isCorner(int row, int column, int gridSize) {
//...
}

推荐阅读