2016-09-20 166 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