Como consigo fazer que o tipo Boolean
pare de dar somente false
e passe a dar true
?
E também gostaria de que ele traga uma mensagem.
System.out.print(Voce tem filhos: (s/n) );
Boolean filhos = sc.hasNextBoolean();
System.out.print(Legal: + filhos);
O valor de input “s” e “n” não são valores booleanos, por isso eles não são convertidos como você espera.
2 curtidas
Se vc digitar somente “s” ou “n”, hasNextBoolean()
vai retornar false
.
Uma dica: sempre leia a documentação de tudo que vai usar. Veja aqui que hasNextBoolean()
só retorna true
se o que foi digitado pode ser convertido para boolean (sendo mais específico, ele só aceita que você digite “true” ou “false”).
No seu caso, se você quer que a pessoa digite “s” ou “n”, então deveria usar nextLine()
:
String opcao = sc.nextLine();
if ("s".equals(opcao)) {
// tem filhos
}
// ou, se só quiser imprimir
System.out.println("Tem filhos: " + "s".equals(opcao));
2 curtidas