我在一个班级里制作这个方法。我已经加倍检查它和所有它应该相应地工作。当我使用这种方法在main方法中运行一个对象时,我总是得到一个错误的返回,即使它应该是真的。
打印报表不打印,所以我无法检查值是否正确传递,我也尝试使if语句返回true,它仍然返回false!它完全符合我的要求,因为一切都在逻辑上正确。
是否存在一条规则我不知道如果某些事情错误,布尔方法会自动返回false?
public boolean addPartsDetails (String newDescription, double newCost) {
System.out.println("is description empty?: " + newDescription);
System.out.println("is cost negative?: " + newCost);
if (newDescription.isEmpty() | newCost < 0) {
return false;
}
else {
this.partsCost += cost;
String newPart = String.format("\t - %s (%.2f) \n", description, cost);
this.partsList = this.partsList.concat(newPart);
return true;
}
}
主要方法:
boolean addBool = tempObj.addPartsDetails(partDes, partCost);
if(addBool) {
System.out.println("\nPart details recorded sucessfullyfor vehicle \"" + tempObj.getRegNum() + "\"");
}
else {
System.out.println("\nError - invalid part details supplied!");
}
答案 0 :(得分:1)
我相信你想用||而不是|这里:
if (newDescription.isEmpty() | newCost < 0) {
将其更改为
if (newDescription.isEmpty() || newCost < 0) {
|
用于按位OR运算,而||
用于条件OR