Java-новичок здесь. У меня несколько кратных циклов. Все разделились, думая, что он просто опустится до тех пор, пока условие while не станет истинным. То, что мой вывод предлагает, состоит в том, что он делает первый цикл while, который находит true, а затем выходит, не глядя на других. Пожалуйста, сообщите, если есть лучший способ сделать это, или если вы видите очевидную ошибку. Образец вывода из (xCar = 3, yCar = 3) и Destination = (1,1) - это просто «запад» «Запад». Должно быть 2 «Юг». * Пожалуйста, извините заявления печати, я пытался отлаживать то, что он делал. Я должен также указать, что я могу только переместить «автомобиль» на одно место, после чего нужно сообщить направление назад.Хотя цикл с несколькими условиями в java
if (car.getLocation().equals(car.getDestination())){
System.out.println("inside this if statement");
System.out.println(car.nextMove().NOWHERE);
}
//Seeing if Xcar is greater than Xdest. If so moving west
while (car.getxCar() > xDestination){
System.out.println("2nd if statement");
System.out.println(car.nextMove().WEST);
}
//Seeing if Xcar is less than Xdest. If so moving east
while (car.getxCar() < xDestination){
//System.out.println("3rd");
System.out.println(car.nextMove().EAST);
}
//Seeing if Ycar is greater than Ydest. If so moving south
while (car.getyCar() > yDestination){
System.out.println("4th");
System.out.println(car.nextMove().SOUTH);
}
//Seeing if Ycar is less than Ydest. If so moving north
while (car.getyCar() < yDestination){
System.out.println("5th");
System.out.println(car.nextMove().NORTH);
}
МЕТОД NextMove() это вызов перечисление в классе Направление
public Direction nextMove() {
if (xCar < xDestination){
xCar = xCar + car.x+ 1;
}
if (xCar > xDestination){
xCar = xCar + car.x -1;
}
if (yCar < yDestination){
yCar = yCar + car.y +1;
}
if (yCar > yDestination){
yCar = yCar + car.y -1;
}
return null;
Выход
Car [id = car17, location = [x=3, y=3], destination = [x=1, y=1]]
2nd if statement
WEST
2nd if statement
WEST
Покажите нам выход. – zEro
Выход добавлен –
Чтобы лучше понять, что происходит, вы можете добавить отладку, чтобы распечатать позицию до/после каждого хода. –