2017-08-26 106 views
1

當我在程序中輸入這樣的:怎樣才能布爾用戶輸入

boolean a = (true & false) & true; 

它的工作。

但是,當我從鍵盤通過掃描儀輸入:

Scanner sc = new Scanner(System.in); 
boolean b = sc.nextBoolean(); 

它不能返回正確的答案。

有什麼辦法,我可以從鍵盤輸入布爾值? 對不起,如果我的英文不清楚。

+0

什麼樣的價值,你打字以外的輸入? –

+3

'Scanner'將接受_single_布爾值爲true或false,或者其中任何不區分大小寫的變體,例如TRUE,FALSE,True,False,trUe, 'fALse'等)。它_won't'接受像「(true&false)&true'這樣的整個布爾表達式...... –

+0

@ElliottFrisch那麼,你的意思是」價值「?我只是使用System.out.println()打印出來。 – Jon

回答

1

根據nextBoolean()的文檔,將掃描輸入的下一個標記爲布爾值並返回該值。

的意見,以便爲正確指出的@Kevin,如果試圖提供比不區分大小寫的truefalse,你最終會得到一個InputMismatchException.

+1

噢,我明白了。無論如何,我們可以使用用戶輸入布爾值?謝謝 – Jon

+0

@Jon您可以使用掃描器sc將布爾值的輸入提供給'b'。但是,如果表達式已經按照上面的一行進行了評估,那麼您無需爲用戶輸入而對其進行掃描。 – nullpointer

+1

@Jon如果此答案解決了您的問題,請將其標記爲接受的答案(單擊答案旁邊的標記)。這將使這篇文章有助於未來的訪問者。 – progyammer