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
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
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.
Acabei encontrando a solução. Era o "\n" que estava fazendo que aparecesse a outra linha. Retirei e funcionou normalmente. Obrigado.