0

ここでは Java の初心者です。複数の while ループがあります。while 条件が true になるまで順番に下がると考えて、すべて分離しました。私の出力が示唆しているのは、最初の while ループを実行し、それが true であると判断した後、他のループを確認せずに終了することです。これを行うためのより良い方法があるかどうか、または明らかなエラーが発生した場合は、アドバイスしてください。(xCar =3, yCar =3) および Destination = (1,1) からのサンプル出力は、単に「West」「West」です。2つの「南」があるはずです。*印刷ステートメントを許してください。私はそれが何をしていたかをデバッグしようとしていました。また、「車」を 1 つの場所にしか移動できないことも指摘しておく必要があります。その後、方向を報告する必要があります。

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);
    }

METHOD nextMove() クラス Direction で列挙型を呼び出しています

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
4

2 に答える 2