代码执行时:
一个。不允许您输入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语句做错了,因为它似乎根本没有执行此代码。
由于 夏兰
答案 0 :(得分:5)
替换
if (employeeID == "A")
通过
if ("A".equals(employeeID))
要比较字符串,请始终使用equals(.)
。 ==
比较参考文献。
答案 1 :(得分:0)
您应该将=
替换为equals
。您无法通过=
符号
答案 2 :(得分:0)
知道了。 emoloyeeID = input.nextLine();正在分配nextDouble方法留下的返回字符。
输入'input.nextLine(); “在下一个Doubke方法似乎解决了它之后。
Ta反馈意见