3
I am making an algorithm that displays the total price of purchases. I enter the product, unit price and quantity. Again I have the possibility to enter with the product and so on. When you want to display the total, just type enter when you order the product. That is, I’m analyzing two possibilities: 1. When the string is empty or 2. When to type = and type enter. The two forms don’t work. Let’s see the code:
import java.util.Scanner;
public class Compras {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
String nomeProduto;
float precoUnitario = 0;
int quantidadeProduto = 0;
float precoTotal = 0;
do {
System.out.println("Informe o produto");
nomeProduto = entrada.nextLine();
System.out.println("Informe o preço do " + nomeProduto);
precoUnitario = entrada.nextFloat();
System.out.println("Informe a quantidade de " + nomeProduto);
quantidadeProduto = entrada.nextInt();
//limpar buffer do teclado//
entrada.nextLine();
//multiplica quantidade com preço unitário e soma ao total.
precoTotal = +(precoUnitario * quantidadeProduto);
}
//pede os dados enquanto não digitar "="//
while (!nomeProduto.equals("="));
//ou se a string for ""
while (!nomeProduto.isEmpty());
//ao finalizar, mostra o valor total
System.out.println("O preço total é $" + precoTotal);
}
}
I don’t know if the variables:
String nomeProduto;
float precoUnitario = 0;
int quantidadeProduto = 0;
should be declared inside the loop, although I have tried and failed. I think every time I enter the loop, these three variables should be restarted. Maybe that’s what never leaves the loop.
I don’t usually use command line, but from what I’m seeing the precoTotal variable is being started with zero at each input. It should not be inside the "the" side so that it is accumulated at each new entry?
– Marcelo Gomes
@Marcelo Gomes is true. The way I’m doing only calculates the total price of the last product. Thanks for the observation.
– André Nascimento