2016-09-20 163 views
-4

我正在制作一个简单的课程程序,将各种项目的价格加在一起。 当它给出总数后,它要求输入密码;如果输入正确,它将(最终)允许用户查看常规用户无法看到的信息。我不断收到的问题是它不会接受密码。即使输入正确,每次都会输入错误的密码。我非常喜欢初学者,非常感谢你的帮助!在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

admin's a boolean - 字符串如何等于布尔值? –

+0

你好?再说一遍,你的问题没有意义 - 请回答上面的问题,并告诉我们你期望使用这段代码的行为以及为什么。 –

+0

我非常想让管理员输入一次输入消息“您现在已登录”,如果输入了不同的单词,它将显示“密码不正确”。目前无论输入什么内容,都会显示“密码错误”。 –

回答

1

你的比较是错误的if条件。您正在检查Stringboolean的等同性。

更改,如果条件类似下面

if (password.equals("admin"))

注:字符串值总是被双引号括起来。

1

无论何时你想写一个字符串文字,用双引号括住文本!

在您的代码中,admin指的是名为admin的变量的值,即false。当你写password.equals(admin)时,这相当于写作password.equals(false)。因此,if语句将始终失败,并且总是执行else子句。

从评论中,我看到你想要的密码是admin。 IMO

if (password.equals("admin")) 

,你应该提取字符串"admin"为常量:所以,你应该在password变量比较实际String

final String PASSWORD = "admin"; 

那么你可以这样比较一下:

if (password.equals(PASSWORD)) 

所以,每次你想改变你的密码,你改变常数!

+0

非常有帮助,谢谢你好先生! –

+0

在你的回答中'PASSWORD'是一个String变量,你在双引号内围绕着这个变量。 – Ravikumar

+0

@Ravikumar哦,我的坏!现在修好! – Sweeper