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