Как определить оператор IF с AND - PullRequest
0 голосов
/ 15 октября 2019

Я передаю три значения в функцию из основного. С этими значениями я делаю сравнение с оператором IF. Условие должно состоять в том, чтобы все три параметра были проверены вместе с помощью оператора AND (&&).

Это главное, когда я передаю значения

public static void main(String args[]) {

        start();


        goal();

        load_truck("truck", "cdg", "p1");


    }

Это функция, которая их получает

public static void load_truck(String truckL, String placeL, String packL) {

        packL = pack;
        truckL = truck;
        placeL = city;
        placeL = airport;
        placeL = loc;


        if(truckL == "truck" && placeL == "cdg" && pack == "p1") {

            at_obj_place(pack = "p1", placeL = "");

            in_pk_vehicle(pack = "p1", truck = "truck");

            System.out.println("\n"+ "The pack "+ pack + " is on the "+ truck );
        }

        if(truckL == "truck" && placeL == "cdg" && pack == "p2") {

            at_obj_place(pack = "p2", placeL = "");

            in_pk_vehicle(pack = "p2", truck = "truck");

            System.out.println("The pack "+ pack + "is on the "+ truck );
        }
        }

Проблема в том, что сравнение с оператором IFне работает. Если я вставляю только одно значение для сравнения, оно работает, но при 2 o 3 IF не работаетВ чем проблема?

РЕДАКТИРОВАТЬ: проблема заключалась в том, как я заполнял переменные в методе. Я удалил, и он работает также с ==, а не только с равно (). Спасибо всем

Ответы [ 3 ]

0 голосов
/ 15 октября 2019

(Это должен быть комментарий, но он слишком длинный и требует форматирования.)

Что это?

packL = pack;
truckL = truck;
placeL = city;
placeL = airport;
placeL = loc;

Вы перезаписываете параметры с помощьюнекоторые другие переменные. Какие переменные pack, truck и т. Д.? * 10101

Также эти вызовы функций странные:

at_obj_place(pack = "p1", placeL = "");

Это допустимая Java, но весьма необычно,Скорее всего, он не делает то, что вы думаете.

0 голосов
/ 15 октября 2019

.equals () метод должен работать для вас. Тем не менее, код не выглядит как действительный код Java.

0 голосов
/ 15 октября 2019

Это:

at_obj_place(pack = "p1", placeL = "");

не Java. Java не имеет именованных параметров.

Примечание: комментарий об «использовании a.equals(b), а не a == b для сравнения строк» ​​также допустим;этот код имеет более одной проблемы.

Дружественное предложение: если вы получаете ошибки или исключения компилятора, всегда вставляйте их вместе со своим вопросом. Это поможет тем, кто пытается ответить на ваш вопрос:)

...