我需要在java中为游戏编写一些方法,其中一个方法是int [] findStone。该方法返回一个数组,该数组给出了我正在搜索的元素的坐标。在java中查找元素位置数组
The field looks like this并且被定义如下:private static int[][] gamefield = new int[8][6];
所以,如果我使用的方法:findStone(3)[0],它应该返回0的x坐标和findStone(3)1,2。这是代码我写的。
private static int[] findStone(int stone) {
int[] position = new int[2];
for(int x = 0; x < 8; x++){
for(int y = 0; y < 6; y++) {
int a = gamefield[x][y];
int i = x;
int j = y;
if(a == stone) {
position[0] = i;
position[1] = j;
}
break;
}
}
return position;
}
的问题是:该方法只返回x坐标为第一行corectly,对于其他元素它表明我0有人能解释我什么,我做错了什么,我应该改变?请,只是简单的解释。我只是在开始,我没有经验的Java。 谢谢:)
因为你使用break for y循环,它只是运行一次。 –
你能清理你想要完成的工作吗? –
除了在错误的地方“break”之外,你还应该同时打破两个循环,否则你的代码会继续保留其余的x值(这至少会浪费cpu周期):参见[带标签的中断] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html)(该页面的后半部分)或考虑立即返回位置而不是中断。 – zapl