1

这是我的代码:

public int getPieceCoords(int entityId) {
    for(int x = 0;x<8;x++) {
        for(int y=0;y<8;y++) {
            if(position[x][y] == entityId){
                return position[x][y];
            }else{
                return (int)null;
            }
        }
    }
    //Need a return here, but it overrides the returns above
}

所以,我无法让它返回我想要的实际输出,不胜感激!

4

3 回答 3

0
public int getPieceCoords(int entityId) {
int  temp = 0;
    for(int x = 0;x<8;x++) {
        for(int y=0;y<8;y++) {
            if(position[x][y] == entityId){
                temp = position[x][y];
            }
        }
    }
   return temp;
}
于 2012-11-27T06:00:34.163 回答
0

尝试这个 ::

public int getPieceCoords(int entityId) 
{
   int result = -1;
    for(int x = 0;x<8;x++) 
     {
        for(int y=0;y<8;y++) 
          {
            if(position[x][y] == entityId)
               {
                result = position[x][y];
                break;

               }
           }
    }
   return result;
}
于 2012-11-27T06:02:22.127 回答
0

您已指定在方法中返回int[][]类型,但是,

return position[x][y];

正在返回一个int,您可能需要检查它。

编辑:根据您的新(编辑)代码,您将返回与参数相同的值

entityId 

如果匹配或0不匹配。

这没有多大意义,为什么不使用 Boolean 作为返回类型呢?即返回true比赛或false其他?

于 2012-11-27T06:06:34.553 回答