如果声明不接受正确的值

时间:2013-11-27 21:56:24

标签: java if-statement boolean

当我调试这段代码时,我注意到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;
}

我有

2 个答案:

答案 0 :(得分:1)

比较字符串的正确方法是:

if (answer.equals("y"))

请注意,在Java中equals()用于测试对象之间的相等,而==运算符用于测试身份。它们是两个不同的概念,大部分时间你都对平等感兴趣。

正如@MadProgrammer建议的那样,反转比较顺序是一个好主意 - 如果answernull,它会更安全:

if ("y".equals(answer))

答案 1 :(得分:0)

您应该使用equals()来比较字符串:

if (answer.equals("y")) {