Как из цикла сделать возврат значения?

Добрый день !
Пишу код для игры в крестики/нолики, на данный момент пытаюсь написать проверку выигрыша. Возник вопрос.
Имеется метод осуществляющий проверку ( в данном случае вертикалей), как мне из этого метода вернуть значение попеременное, при условии что цикл не должен прекращать свою проверку. Когда я пишу return в цикле, он обрывает его действие, что не подходить для моего случая, т.к. тогда не осуществляется проверка всех вертикалей( а только первой). Прилагаю кусок кода.
public String checkVertical (Field field){
	    Point point1 = new Point(); //создание объекта фигурки
	    Point point2 = new Point(); //создание объекта фигурки
	    Point point3 = new Point(); //создание объекта фигурки
		String x = null; //переменная которую в итоге вернем для финальной проверки победителя
        for (int i = 0; i < field.getSize(); i++){
              //проверка по координатам
			point1.x = i; 
			point2.x = i;
			point3.x = i;
			point1.y = 0;
			point2.y = 1;
			point3.y = 2;
			x = checkThreePoint(point1, point2, point3, field) ; // данный метод проверяет фигурки на совпадение(если есть 3 из 3 то возвращается победитель, иначе null
			if (x != null) {
				return x; //эта проверка остановит цикл, что неверно
			}
			else{ 
				return null;
			}
		}
		return x; // тут должен вернуться итоговый победитель
	}
  • Вопрос задан
  • 1421 просмотр
Решения вопроса 1
@WaterSmith
Android-разработчик. Java, Kotlin
Уберите else { return null;}
тогда у вас будет выход из цикла, при первом обнаружении тройки, что логично, зачем проверять дальше если тройка найдена. Или после прохождения всех итераций цикла.

Что касается качества кода, null это не та штука, которую принято возварщать в java, логично использовать для этого булево.
И с именами переменных стоит поработать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы