Boolean

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

Valeu

valeu