该程序应该返回板上一块的位置。板被表示为2D阵列。循环只是循环遍历列,然后如果仍未找到该块,则转到下一行。但是,仅返回[-1,-1]
数组(未找到任何部分)。我一直无法找到错误,所以任何帮助
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 :(得分:4)
boolean found=false;
for(int column=0;found==true;column++){
你可以看到发现是假的。并为循环检查找到的真值。它永远不会进入循环。这就是为什么地点按原样返回的原因。