2017-08-26 60 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