印刷2次元配列をスピリットの順序で実装しようとしています。私は理由を知らないが、私のコードはループプリント1,2,3,4を繰り返し無限に入力している。2次元配列をスピリット順に出力する - 無限ループに入る
StringsubString.java
package com.String;
public class StringSubString {
public static void main(String arg[]) {
int[][] values = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
printInSprialOrder(values, 4, 4);
}
private static void printInSprialOrder(int A[][], int m, int n) {
int t = 0, b = m - 1, l = 0, r = n - 1;
while (t <= b && l <= r) {
for (int i = l; i <= r; i++) {
System.out.println(A[t][i]);
t++;
}
for (int i = t; i <= b; i++) {
System.out.println(A[i][r]);
r--;
}
for (int i = r; i >= l; i++) {
System.out.println(A[b][i]);
b--;
}
for (int i = b; i >= t; i--) {
System.out.println(A[i][l]);
}
}
}
}
https://www.youtube.com/watch?v=siKFOI8PNKM – Leo
コードで1,2,3,4を繰り返し印刷している場合は、コードと異なる内容を投稿しています。私はそれを実行するとき、それはまったく異なる動作をします。 – ajb
このコードでは、 "スレッド"のメイン "java.lang.ArrayIndexOutOfBoundsException:"例外が発生していますので、最後に一度確認してください。デバッグできるかもしれません。それは非常に一般的な問題ですが、あなたはそれをGoogleに託すことができ、多くのアプローチと解決策があります。 – pbajpai21