执行java if / else语句的逻辑错误

时间:2013-02-01 20:30:08

标签: java

代码执行时:

一个。不允许您输入employeeID的String, B.完全绕过If / Else语句。

代码是:

    double salary = 0.0;
String employeeID;



System.out.println("\nWhich Employee would you like to see Gross Earning's of? (A, B, C, or ALL)?");
employeeID = input.nextLine();

//if else commnnad to chose which employee details required

if (employeeID == "A")
    {
    if (employeeA.getHours() > 40)
        {
        salary = (employeeA.getRate()*40) + employeeA.getOverTimeRate() * (employeeA.getHours() - 40);
        }
    else
        {
        salary = employeeA.getRate()*40;
        }
    }
    System.out.printf("You have chosen Employee: %s\nHours Worked: %.2f\nNormal Rate: %.2f\nOver Time Rate: %.2f\nGross Salary: %.2f\n", employeeID, employeeA.getHours(), employeeA.getRate(), employeeA.getOverTimeRate(), salary);   

执行时看起来像这样:

您希望哪位员工看到总收入? (A,B,C或ALL)? 您选择了员工: 工作小时数:1.00 正常率:1.00 超时率:1.00 总薪水:0.00

我认为我对IF / Else语句做错了,因为它似乎根本没有执行此代码。

由于 夏兰

3 个答案:

答案 0 :(得分:5)

替换

if (employeeID == "A")

通过

if ("A".equals(employeeID))

要比较字符串,请始终使用equals(.)==比较参考文献。

答案 1 :(得分:0)

您应该将=替换为equals。您无法通过=符号

比较字符串

答案 2 :(得分:0)

知道了。 emoloyeeID = input.nextLine();正在分配nextDouble方法留下的返回字符。

输入'input.nextLine(); “在下一个Doubke方法似乎解决了它之后。

Ta反馈意见