1
resposta

nextInt() não retorna -0 ?

Olá pessoal,

Depois de alguns desafios propostos no curso "Java: criando a sua primeria aplicação" - curso inicial de Java - , eu decidir explorar um pouco e ir brincando.

Fiz uma variável que instancia Scanner e lê o que vem do teclado. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

E uma variável nextInt() para receber valores inteiros. O uqe acontece é que ao exibir essa variável que recebe os valores inteiros, caso o valor seja "-0" (especificamente) ele printa 0 (positivo). Tentei usar outros valores e funciona, printa eles como negativo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Alguém sabe o do porque dessa ação, eu fiquei curioso, e gostaria de trazer isso para gerarmos alguma interação, e até mesmo levantar essa dúvida que pode ser de alguns mais iniciantes como eu.

Já deixo aqui mesu agradecimentos!!

1 resposta

Oi Leonardo, tudo bem? 😊

Essa é uma ótima questão! 🤔

Em Java, o tipo int representa números inteiros com sinal, e o zero não tem sinal. O valor "-0" que você está vendo é interpretado como o mesmo valor que "0". Isso acontece porque a representação binária de zero é a mesma, independentemente do sinal.

O método nextInt() do Scanner lê a entrada do usuário e a converte para um valor inteiro. Quando você digita "-0", o Scanner interpreta isso como o número zero. Por isso, ao imprimir o valor, você vê apenas "0".

Essa é uma característica do tipo int em Java, e não um bug ou comportamento inesperado. É importante lembrar que, em termos matemáticos, -0 é igual a 0.

🎓 Para saber mais:

Continue explorando e experimentando, essa é a melhor forma de aprender! 💪

tux matrixCaso este post o tenha ajudado,marque-o como solucionado ☑️.Bons Estudos! 🤓