Java If语句不接受正确的值
当我调试这段代码时,我注意到If语句从未将布尔型sales变量切换为true。。。这让我很烦恼,因为我知道在If语句中答案是“y”。救命啊!是的,我确实导入了java.util.ScannerJava If语句不接受正确的值,java,if-statement,boolean,Java,If Statement,Boolean,当我调试这段代码时,我注意到If语句从未将布尔型sales变量切换为true。。。这让我很烦恼,因为我知道在If语句中答案是“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?
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;
}
比较字符串的正确方法是:
if (answer.equals("y"))
请注意,在Java中,equals()
用于测试对象之间的相等性,而=
运算符用于测试标识。它们是两个不同的概念,大多数时候你对平等感兴趣
正如@MadProgrammer所建议的,颠倒比较顺序是一个好主意-如果答案为空
,则比较安全:
if ("y".equals(answer))
您应该使用equals()
来比较字符串:
if (answer.equals("y")) {
吹毛求疵——“y”。等于(答案)
或“y”。等于信号案例(答案)
可能更好suggestion@MadProgrammer公平地说,我更新了我的答案:)你看,现在我要投票给你:PNit Pick-“y”。equals(答案)
或“y”。equalsIgnoreCase(答案)
可能是一个更好的建议