2017-08-26 4 views
1

Quand je entrée dans le programme comme celui-ci:Comment obtenir l'entrée d'utilisateur booléen

boolean a = (true & false) & true; 

Il a travaillé.

Mais quand je les entrées du clavier à l'aide du scanner:

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

Il ne peut pas retourner la bonne réponse.

Y at-il un moyen que je peux booléen lors de la saisie du clavier? Désolé si mon anglais n'est pas clairement.

+0

Quelle valeur sont en tapant vous? –

+3

Le 'Scanner' acceptera une valeur booléenne _single_ de' true' ou 'false' (ou n'importe quelle variante insensible à la casse de celle-ci, comme' TRUE', 'FALSE',' True', 'False',' trUe', 'fALse', etc.). Il n'acceptera pas une expression booléenne complète comme '(true & false) & true' ... –

+0

@ElliottFrisch Eh bien, que voulez-vous dire par" valeur "? Je viens d'utiliser System.out.println() pour l'imprimer. – Jon

Répondre

1

Selon les documents de nextBoolean(), il numériser le jeton suivant de l'entrée dans une valeur booléenne et renvoie cette valeur.

Ainsi, comme l'a justement souligné par les commentaires dans @ Kevin, si vous essayez de lui fournir une entrée autre que le cas insensible à la casse true ou false, vous finiriez avec un InputMismatchException.

+1

Oh, je comprends. Y at-il de toute façon que nous pouvons booléen en utilisant l'entrée de l'utilisateur? Merci – Jon

+0

@Jon Vous pouvez fournir une valeur booléenne à 'b' en utilisant le scanner' sc'. Mais si l'expression est déjà évaluée comme dans une ligne ci-dessus, vous n'avez pas besoin de la scanner pour une entrée utilisateur. – nullpointer

+1

@Jon Si cette réponse a résolu votre problème, veuillez le marquer comme la réponse acceptée (cliquez sur le bouton qui se trouve à côté de la réponse). Cela rendra ce message utile pour les futurs visiteurs. – progyammer