java - 简单的 If 语句不起作用 (BlueJ)

标签 java bluej

我正在为学校做一个简单的自助结账,我不知道为什么这不起作用,我已经尝试了一切。 我希望删除最后一项方法仅在 boolean 变量为 true 时才起作用。 boolean 值为 false 意味着它将无法工作并会显示打印的错误消息。到目前为止,无论 boolean 值是什么,删除最后一项方法在某种意义上仍然是“删除”,因为它将项目计数减少 1。一旦调用打印收据方法,它就会重置计数和 boolean 值,以便如果没有项目,则无法删除该项目。然而它仍然使计数值-1。删除项目方法只能工作一次(这意味着您不能直接删除一个项目,然后直接删除另一个项目),因此,如果您在刚刚删除项目后尝试删除项目,则应该会在终端上打印一条错误消息,但是假定的错误消息根本不打印。

public class Machine
{
private double balance;
private int count;
private boolean lastEntry;
private double itemPrice;

public Machine()
{
    balance = 0;
    count = 0;
    lastEntry = false;
}

public void scanItem(Item newItem)
{
   balance = balance + newItem.price;
   itemPrice = newItem.price;
   count = count + 1;
   lastEntry = true;
}

public void printReciept ()
{
   System.out.println ("####################");
   System.out.println ("Total = $" + balance); 
   System.out.println ("Number of Items = " + count);
   System.out.println ("Next Customer!");
   System.out.println ("####################");
   balance = 0;
   count = 0;
   lastEntry = false;
}  

public void removeLast ()
{
  if (lastEntry = false) {
      System.out.println ("CANNOT PERFORM ACTION");

    }else if (lastEntry = true){
     balance = balance - itemPrice;
     count = count - 1;
     lastEntry = false;
    }

 }
}

最佳答案

= 运算符执行赋值,而不是比较。您应该使用 == 运算符来测试相等性。

在这种情况下,你可以简单地这样写:

public void removeLast ()
{
    if (!lastEntry) { // ! operator means logical negation
        System.out.println ("CANNOT PERFORM ACTION");
    } else { // !lastEntry is false, so lastEntry must be true
        balance = balance - itemPrice;
        count = count - 1;
        lastEntry = false;
    }
}

关于java - 简单的 If 语句不起作用 (BlueJ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35990872/

相关文章:

java - 分析 Java : find out where threads spend time blocked

java - 对从另一个类调用方法感到困惑

Java读取文本文件中的每隔一行

java - Eclipse RCP 右键单击​​事件

java - 在 JNA 中使用时 IPC_CREAT 的值

java - 如何管理字符串数组中连续变化的值

JFrame 中的 JavaFX 菜单

java - 将矩阵格式化为从左到右读取

java - 请注意文件名以及如何打印我从计算机中选择的文件名?

java - 在Java中如何将字符串转换为整数?