//请大佬看看有啥错误的地方 谢谢 本人小白一枚 写的不好还请见谅
public class Test2 {
public static void main(String[] args) {
int[][] arr={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};
if (arr.length != 0 && arr[0].length != 0) {//先判断是否大于零
if (arr.length == arr[0].length) {
for (int i = 0; i <= arr.length - 1; i++) { //控制圈数
for (int j = i; j < arr[i].length - i - 1; j++) { //矩阵上方的数
System.out.print(arr[i][j] + " ");
}
for (int i1 = i; i1 < arr.length - i - 1; i1++) {//矩阵右方的数
System.out.print(arr[i1][arr[i].length - i - 1] + " ");
}
for (int i1 = arr[i].length - i - 1; i1 > i; i1--) {//矩阵下方的数
System.out.print(arr[arr.length - i - 1][i1] + " ");
}
for (int i1 = arr.length - i - 1; i1 > i; i1--) {//矩阵左方的数
System.out.print(arr[i1][i] + " ");
}
if (arr.length % 2 != 0 && i == arr.length - 1) {//当矩阵长宽相等时 输出中心的数
System.out.println(arr[arr.length / 2][arr.length / 2]);
}
}
} else {
for (int i = 0; i <= arr.length - 2; i++) {//控制圈数
for (int j = i; j < arr[i].length - i - 1; j++) {//矩阵上方的数
System.out.print(arr[i][j] + " ");
}
for (int i1 = i; i1 < arr.length - i - 1; i1++) { //矩阵右方的数
System.out.print(arr[i1][arr[i].length - i - 1] + " ");
}
for (int i1 = arr[i].length - i - 1; i1 > i; i1--) {//矩阵下方的数
System.out.print(arr[arr.length - i - 1][i1] + " ");
}
for (int i1 = arr.length - i - 1; i1 > i; i1--) {//矩阵左方的数
System.out.print(arr[i1][i] + " ");
}
}
}
}
}
}