如何使用 AND 定义 IF 语句



我正在从main向函数传递三个值。使用这些值,我与 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 不起作用。问题出在哪里?

编辑:问题是我如何在方法中填充变量。我删除了,它也适用于 ==,而不仅仅是 equals((。谢谢大家

这个:

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

不是Java。Java 没有命名参数。

注意:关于"使用a.equals(b)而不是a == b来比较字符串"的评论也是有效的;这段代码有多个问题。

一个友好的建议:当您遇到编译器错误或异常时,请始终将它们与您的问题一起粘贴。它将帮助那些试图回答您的问题的人:)

(这应该是一个注释,但它太长了,需要格式化。

这是怎麽?

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

您正在用其他一些变量覆盖参数。packtruck等变量是什么?

这些函数调用也很奇怪:

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

这是有效的Java,但非常不寻常。很可能它没有做你认为它做的事情。

.equals((方法应该适合你。但是,该代码看起来不像有效的 java 代码。

最新更新