2017-08-26 23 views
1

取得することができます。どのようにこのようなプログラムでI入力がブールユーザーが入力

boolean a = (true & false) & true; 

それが働いています。

しかし、スキャナを使用して、キーボードからの入力Iとき:

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

それは正しい答えを返すことができません。

キーボードからの入力時にブール値を返す方法はありますか? 私の英語がはっきりしない場合は申し訳ありません。

+0

で終わるのでしょうか? –

+3

'Scanner'は' true'または 'false'(または' TRUE'、 'FALSE'、' True'、 'False'、' trUe'などの大文字小文字を区別しないvariantの_single_ブール値を受け入れます。 'false'など)。それは '(true&false)&true'のようなブール式を受け入れません... –

+0

@ElliottFrischまあ、"価値 "を意味していますか?私はSystem.out.println()を使って印刷します。 – Jon

答えて

1

nextBoolean()のドキュメントによれば、は入力の次のトークンをブール値にスキャンし、その値を返します。

だからとして当然のコメントで@Kevinが指摘し、あなたはそれを大文字と小文字を区別しないtrueまたはfalse以外の入力を提供しようとした場合、あなたはどのような値を入力しているInputMismatchException.

+1

ああ、私はそれを得る。とにかく、ユーザー入力を使用するときにブール値を取ることができますか?ありがとう – Jon

+0

@Jonスキャナー 'sc'を使って' b'にブール値の入力を与えることができます。しかし、式がすでに上記の行のように評価されている場合、ユーザー入力のためにそれをスキャンする必要はありません。 – nullpointer

+1

@ジョンこの答えがあなたの問題を解決した場合は、それを受け入れられた答えとしてマークしてください(その答えの横にあるティックサインをクリックしてください)。これにより、この投稿は将来の訪問者に役立ちます。 – progyammer

関連する問題