2015-07-05 178 views
1

該程序應該返回棋盤上棋子的位置。該棋盤被表示爲2D陣列。循環只是循環遍歷列,然後如果仍然沒有找到它,它會進入下一行。但是,只有[-1,-1]數組正在返回中(沒有找到碎片)。我一直沒能找到我自己的錯誤,所以任何幫助Java 2D陣列搜索不能正常工作

public int[] pieceFinder(int piece) { 

    int[][] board={{43,44,45,50,47,48,49}, 
        {36,37,38,39,40,41,42}, 
        {29,30,31,32,33,34,35}, 
        {22,23,24,25,26,27,28}, 
        {15,16,17,18,19,20,21}, 
        {8,9,10,11,12,13,14}, 
        {1,2,3,50,5,6,7}};  

    int row=0; 
    boolean found=false; 
    int[] location={-1,-1} ; 

    for(int column=0;found==true;column++) { 
     if(board[row][column]==piece) { 
      found=true ; 
      location[0]=row; 
      location[1]=column; 
     } 

     else if(column==6) { 
      if(row==6) { 
       break; 
      } 

     else { 
      row++; 
     } 
    } 
    return location; 
}    
+0

仔細考慮環路條件。仔細檢查你的書是什麼意思。 – molbdnilo

回答

4
boolean found=false; 
for(int column=0;found==true;column++){ 

,你可以看到發現是假的。併爲循環檢查找到的真實值。它永遠不會進入循環。這就是爲什麼地點會按原樣返回。