Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Systemout Imprimindo duas vezes

Olá! Poderiam me informar o porquê do printf ou println imprimir a linha subsequente antes de esperar a entrada pelo usuário? Segue link da imagem: https://imgur.com/a/FAVOPZc

5 respostas

O problema não está na impressão no terminal, e sim no uso do Scanner.

O método .next() da classe Scanner, conforme a própria documentação do Java sugere, faz o seguinte:

1 - Pausa o processamento até haver uma entrada;
2 - Retorna o valor da entrada;
3 - Se mantém na mesma linha ao invés de seguir para a próxima. Aqui está o problema.

Devido ao fato do método se manter na mesma linha após execução, o seu programa irá "pular" a leitura do seu próximo .nextLine(), afinal é uma linha que já foi lida pelo Scanner.

Dito isto, se você passar a utilizar o método .nextLine() no lugar de .next(), seu problema deve estar resolvido.

Estou usando o .nextLine()

Não está na linha 17.

Não funcionou. https://imgur.com/a/MhwXYLG

solução!

Acabei encontrando a solução. Era o "\n" que estava fazendo que aparecesse a outra linha. Retirei e funcionou normalmente. Obrigado.