当代码执行时:
A.不允许您输入员工 ID 的字符串, 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 或全部)? 您已选择员工: 工作时间:1.00 正常利率:1.00 超时率:1.00 工资总额:0.00
我认为我在 IF/Else 语句中做错了什么,因为它似乎根本不执行此代码。
谢谢 夏兰
最佳答案
替换
if (employeeID == "A")
由
if ("A".equals(employeeID))
要比较字符串,请始终使用equals(.)
。 ==
比较引用。
关于java - 执行java if/else语句时出现逻辑错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654468/