当我调试这段代码时,我注意到If语句永远不会将布尔类型的销售变量切换为true ...这是烦我的,因为我知道当它到达If语句时answer =“y”。请帮忙!是的,我确实导入了java.util.Scanner
Scanner input = new Scanner(System.in);
boolean sales = false;
String answer;
System.out.print("Will you be calculating the Sales department pay aswell? (y or n):");
answer = input.nextLine().trim();
if (answer == "y")
{
sales = true;
}
我有
答案 0 :(得分:1)
比较字符串的正确方法是:
if (answer.equals("y"))
请注意,在Java中equals()
用于测试对象之间的相等,而==
运算符用于测试身份。它们是两个不同的概念,大部分时间你都对平等感兴趣。
正如@MadProgrammer建议的那样,反转比较顺序是一个好主意 - 如果answer
是null
,它会更安全:
if ("y".equals(answer))
答案 1 :(得分:0)
您应该使用equals()
来比较字符串:
if (answer.equals("y")) {