我正在从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;
您正在用其他一些变量覆盖参数。pack
、truck
等变量是什么?
这些函数调用也很奇怪:
at_obj_place(pack = "p1", placeL = "");
这是有效的Java,但非常不寻常。很可能它没有做你认为它做的事情。
.equals((方法应该适合你。但是,该代码看起来不像有效的 java 代码。