Java - erro no código de uma lista para compras no mercado

Boa tarde Srs especialistas. Sou novato e procuro aprender mais nas férias da graduação. Estou tentando um projeto de uma lista simples para compras no mercado.
A ideia após o código funcionar no Eclipse é levar para meu celular.

package compras;

import java.util.Locale;
import java.util.Scanner;

public class Compas {

	public static void main(String[] args) {
		Locale.setDefault(Locale.US);
		
		//variáveis
		Scanner sc = new Scanner(System.in);
		String item;
		int qtd;
		double vlrUnit = 0;
		double vlrTotal = 0;
		double vlrTotalCompra = 0;
		
		//entrada
		System.out.println("Item: ");
		item = sc.next();
				
		System.out.println("Quantidade: ");
		qtd = sc.nextInt();//<<<<< APRESENTA ERRO >>>> CONVERTE O DIGITADO EM INTEIRO

                System.out.println("Valor do item: ");
		vlrUnit = sc.nextDouble(); // PARA CONVERTER O QUE FOI 
                                                             DIGITADO PARA DOUBLE.
		
		//lógica
		vlrTotal = vlrUnit * qtd;
		
		//saída
		
		System.out.print(item + qtd + vlrTotal);
		System.out.println("O valor total da lista é: " + vltTotalCompra); // erro, tenho que somar o valor para cada item.
		
	}

}
import java.util.Locale;
import java.util.Scanner;

class Compas {
    public static void main(String[] args) {
        Locale.setDefault(Locale.US);
        
        //variáveis
        Scanner sc = new Scanner(System.in);
        String item;
        int qtd;
        double vlrUnit = 0;
        double vlrTotal = 0;
        double vlrTotalCompra = 0;

        //entrada
        System.out.println("Item: ");
        item = sc.next();

        System.out.println("Quantidade: ");
        qtd = sc.nextInt();//<<<<< APRESENTA ERRO >>>> CONVERTE O DIGITADO EM INTEIRO

        System.out.println("Valor do item: ");
        vlrUnit = sc.nextDouble(); // PARA CONVERTER O QUE FOI DIGITADO PARA DOUBLE.

        //lógica
        vlrTotal = vlrUnit * qtd;

        //saída
        System.out.println("Item: " + item + " Qtde: " + qtd + " R$ Total " + vlrTotal);
        System.out.println("O valor total da lista é: " + vlrTotal); // erro, tenho que somar o valor para cada item.
    }
}

Olá Emir. A ideia inicial seria preencher os itens e quantidades em casa, no mercado preencher com os valores unitários.

Poder visualizar a lista inteira.

A medida que preencher, o valor total da compra seria atualizado.

Quando você usa um Scanner para ler o teclado, deveria usar somente o método nextLine.
Todos os outros next e nextAlgumaCoisa não consomem a quebra de linha gerada ao pressionar ENTER, por isso você está tendo erros.

2 curtidas

Obrigado Ataroski. Você tinha razão. Agora funcionou. Só tenho que pesquisar como levar para o smartfone e nele criar uma relação.
A ideia é criar os itens em casa, no mercado abrir e inserir os preços, atualizando a cada preço. Ao chegar no caixa para pagar terei o valor total da compra e uma lista para conferir.
Obrigadão.

1 curtida

É, no seu smartphone você não vai ter uma aplicação que roda em linha de comando, você vai ter que aprender a criar uma tela pro seu aplicativo.

Staroski, valeu! Estou aprendendo modelagem e programação de banco de dados SQL, mas para este mortal, sintetizar as linguagem e vir a conseguir fazer o software rodar é algo complexo.
Mas, um passo de cada vez.
Agradeço a dica, vou tentar esse caminho. Bom feriado.