2016-05-16 38 views
-2

爲什麼需要寫:的java - 理解的一段代碼在陣列

mat.length-1 
在第二

for循環(循環它所有條件)。

循環:

for (int i = 0; i < mat.length-1; i++) { 
     for (int j = 0; j < mat.length-1; j++) { 
      if (i == j) { 
       j++; 
       if (i == mat.length - 1 && j == mat.length - 1) { 
        break; 
       } 
      } 
      if (i != j && mat[i][j] == mat[j][i]) { 
       flag = true; 

      } else { 
       flag = false; 
       if (flag == false) { 
        stop = 1; 
        i = mat.length - 1; 
       } 
      } 
     } 

    } 

Checking program applies

完整代碼:

public class test { 
public static void main(String[] args) { 

    //int[][] mat = { { 9, 2, 4 }, { 2, 9, 7 }, { 4, 7, 9 } }; 
    int[][]mat = { { 9, 2, 3, 4}, 
        { 2, 9, 6, 3}, 
        { 3, 6, 9 ,2}, 
        { 4, 3, 2 ,9}}; 

    boolean flag = true; 
    int stop = 0; 

    for (int i = 0; i < mat.length; i++) { 
     for (int j = 0; j < mat.length; j++) { 
      System.out.print("[" + mat[i][j] + "]"); 
     } 
     System.out.println(); 
    } 
    for (int i = 0; i < mat.length-1; i++) { 
     for (int j = 0; j < mat.length-1; j++) { 
      if (i == j) { 
       j++; 
       if (i == mat.length - 1 && j == mat.length - 1) { 
        break; 
       } 
      } 
      if (i != j && mat[i][j] == mat[j][i]) { 
       flag = true; 

      } else { 
       flag = false; 
       if (flag == false) { 
        stop = 1; 
        i = mat.length - 1; 
       } 
      } 
     } 

    } 

    if (stop == 1) { 
     System.out.println("Not first folded matrix"); 
    } else { 
     System.out.println("First folded matrix"); 
    } 

} 
} 

這是工作,但如果我將其更改爲

mat.length 

它不工作 如果我寫一個負數,那麼它會在到達數組末尾之前停止i的循環。 可以解釋嗎?

+0

您可能需要編碼爲'(INT I = 0;我 jr593

回答

0

在你的代碼中,這些行不起作用,因爲我和j在你的代碼中永遠不會等於(mat.length-1)。

if (i == mat.length - 1 && j == mat.length - 1) { 
    break; 
} 

更改您的代碼:

for (int i = 0; i < mat.length; i++) { 
     for (int j = i+1; j < mat.length; j++) { 
      if (mat[i][j] != mat[j][i]) { 
       flag = false; 
       j = mat.length; 
       i = mat.length; 
      } 
     } 
    } 

    if (flag == false) { 
     System.out.println("Not first folded matrix"); 
    } else { 
     System.out.println("First folded matrix"); 
    } 
+0

謝謝你有效 – acvbfd123