因此,我正在编写一个程序,该程序采用5x5的2D数组,并列出该数组任何给定索引周围的所有字符。例如,如果我输入list [1] [1],它将给出索引:[0] [0],[0] [1],[0] [2],[1] [0],[1 ] [2],[2] [0],[2] [1],[2] [2]。
我可以打印出索引周围的所有字母,但边缘[0] [0]之类的字母除外。我似乎不知道该如何克服。
private static void checkSurrounding(char[][] list, int x, int y) {
for(int dx = -1; dx <= 1; dx++) {
for(int dy = -1; dy <= 1; dy++) {
if(!(dx == 0 && dy == 0)) {
System.out.print(list[x + dx][y + dy]);
}
}
}
}
答案 0 :(得分:1)
您的代码几乎正确!您在此处排除了中间点:
div {margin-top: 1px}
div > div {margin-top: 2px}
div > div > div {margin-top: 3px}
div > div > div > div {margin-top: 4px}
您唯一想念的就是避免越界。只要确保您不超出范围,它就可以正常工作:
private static void checkSurrounding(char[][] list, int x, int y) {
for(int dx = -1; dx <= 1; dx++) {
for(int dy = -1; dy <= 1; dy++) {
if(!(dx == 0 && dy == 0)) {
System.out.print(list[x + dx][y + dy]);
}
}
}
}