Inputs via terminal se atropelando - (JAVA)

Olá senhores(as), no meio dos meus estudos, sempre que vou utilizar o Scanner para ler valores via terminal e tenho vários inputs, a leitura fica atropelada, por exemplo:

  private void receiveProductData() throws Exception {
        System.out.println("### Cadastre os produtos no estoque ###");

        id++;
        System.out.print("Informe a descrição do produto: ");
        description = input.nextLine();          
        System.out.print("Informe a quantidade do produto: ");
        amount = input.nextInt();
        System.out.println("Informe o valor unitário do produto: ");
        unitaryValue = input.nextDouble();
    }

Nesse método eu tenho alguns inputs encadeados, é justamente em cenários como esse que isso é recorrente. E esses cenários geram a seguinte situação:

### Cadastre os produtos no estoque ###
Informe a descrição do produto: Arroz
Informe a quantidade do produto: 20
Informe o valor unitário do produto: 5.60
Deseja continuar o cadastro [S] ou [Ñ] ?
s
### Cadastre os produtos no estoque ###
Informe a descrição do produto: Informe a quantidade do produto:

Será que o sout quem está implicando nesse erro? Se souberem alguma forma de evitar isso, peço que se possível compartilhem comigo.

Resumindo, o problema é quando vc mistura nextLine com outros métodos como nextInt. Já tem vários tópicos explicando, inclusive pra não precisar escrever tudo de novo, resolvi colocar uma explicação completa (e também a solução) aqui:

3 curtidas

Desde já agradeço meu mano :sunglasses: :call_me_hand: