Мне нужно написать некоторые методы для игры в java, и один из них - int [] findStone. Метод возвращает массив, который дает координату элемента, который я ищу.Найти массив позиций элемента в java
The field looks like this и определяется следующим образом: private static int[][] gamefield = new int[8][6];
Так что, если я использую метод: findStone (3) [0], она должна возвращать 0 для координаты х и 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;
}
Проблема заключается в следующем: метод возвращает только координаты х для первой строки corectly, для других элементов он показывает мне 0. Может кто-нибудь объяснить мне, что я сделал неправильно, и что я должен изменить? Пожалуйста, только простое объяснение. Я только в начале, и у меня нет опыта в java. Спасибо :)
потому что вы используете break для y loop, он просто запускается один раз. –
Можете ли вы прояснить, что вы пытаетесь выполнить? –
Помимо 'break' в неподходящем месте, вы также должны выйти из обеих петель одновременно или ваш код продолжает идти за оставшимися значениями x (что является по крайней мере пустой тратой циклов процессора): см. [Break with label] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html) (вторая половина этой страницы) или подумайте о том, чтобы «вернуть позицию» немедленно, а не нарушать. – zapl