我正在为课堂制作一个简单的程序,将各种物品的价格加在一起。
它总计后要求输入密码;如果输入正确,它将(最终)允许用户查看普通用户无法看到的信息。我一直遇到的问题是它不会接受密码。即使输入正确,每次都会说错误的密码。我是一个非常初学者,非常感谢你的帮助!在boolean admin = false;
和下一组代码之间,我只有一些公式和System.out。决定加入它们并不重要。
boolean admin = false;
System.out.printf("Your total comes to %.2f", totalPrice);
kbd.nextLine();
System.out.println();
System.out.println("Enter the password.");
String password = kbd.nextLine();
if (password.equals(admin)) {
System.out.println("You are now logged in.");
} else {
System.out.println("Incorrect Password.");
}
答案 0 :(得分:1)
if
条件下您的比较错误。您正在检查String
与boolean
的平等性。
更改您的if条件,如下所示
if (password.equals("admin"))
注意:字符串值始终用双引号括起来。
答案 1 :(得分:1)
每当您想要写一个字符串文字时,请用双引号括起文字!
在您的代码中,admin
引用名为admin
的变量的值,即false
。当你写password.equals(admin)
时,它相当于写password.equals(false)
。因此,if语句将始终失败,并且始终执行else子句。
从评论中,我看到您希望密码为admin
。因此,您应该将password
变量与实际的String
进行比较:
if (password.equals("admin"))
IMO,您应该将字符串"admin"
提取为常量:
final String PASSWORD = "admin";
然后你可以这样比较:
if (password.equals(PASSWORD))
因此,每次要更改密码时,都要更改常量!