[DUVIDA] Como criar um loop controlado por sentinela

Estou resolvendo um exercício e criei o codigo abaixo:

[code]/Uma empresa que faz negócios de reembolso postal vende cinco produtos cujos
preços de varejo são como se segue: Produto1 2,98; Produto2 4,50; Produto3 9,98,
Produto4 4,49; Produto5 6,87. Escreva um aplicativo que leia o numero do produto
e a quantidade vendida. Seu programa deve utilizar uma estrutura switch para determinar
o preço do varejo de cada produto. Você deve calcular e exibir o valor de varejo total de
todos os produtos vendidos. Utilize um loop controlado por sentinela para determinar
quando o programa deve parar o loop e exibir os resultados finais.
/

package pkgExercicio4;
import java.util.*;

public class ReembolsoPostal {
private int produto;

public int definirProduto (){
	Scanner entrada = new Scanner(System.in);
	System.out.println("Digite o numero do produto vendido: ");
	produto = entrada.nextInt();
	
	return produto;
}

public double calcularTotal (int prod){
	prod = definirProduto();
	Scanner entrada = new Scanner(System.in);
	System.out.println("Digite a quantidade vendida: ");
	double total = entrada.nextDouble();
	
	switch (prod){
	case 1:
		total*=2.98;
		break;
	case 2:
		total*=4.50;
		break;
	case 3:
		total*=9.98;
		break;
	case 4:
		total*=4.49;
		break;
	case 5:
		total*=6.87;
	default:
		System.out.println("Não existe o produto informado.\n");
	}
	
	return total;
}

public int verificarEntrada (){
	Scanner entrada = new Scanner(System.in);
	System.out.println("Deseja inserir a venda de outro produto?\n\n0 - Não\n1 - Sim\n");
	
	int condicao = entrada.nextInt();
	
	return condicao;
}

}[/code]

[b]Acredito que esteja certo, porém, preciso criar um loop que requisite ao usuário a inserção de novos produtos e que só pare quando o usuário encerrar a introdução de dados.

Se alguém puder me ajudar a fazer ou me dar uma ideia…[/b]

Luiza,

Esse loop controlado por sentinela acho que foi pra confundir viu rsrs. Pelo que vi no seu código o loop ficará em execução enquanto o usuário digitar 1 na pergunta “Deseja inserir a venda de outro produto?\n\n0 - Não\n1 - Sim\n”.

Sendo assim, basta agora que crie o método principal(main) chamando e tratando todos esses métodos seus criados, vou colocar em texto para que entenda e faça vc mesma.

public static void main(String[] args){ double totalGeral = 0; //essa variavel vai guardar o total de todos os produtos enqto o loop é executado do{ int produto = o retorno do método definirProduto totalGeral = totalGeral + calcularTotal(produto) //produto que foi retornado pelo metodo definirProduto }while(método verificarEntrada retornar 1) }

Creio que seja somente isso. Utilizei o laço do-while pois o seu método verificarEntrada imprime na tela um texto falando de OUTRO produto, como a primeira vez que passar não tem OUTRO produto, com o do-while ele irá executar a primeira vez sempre sem questionar, irá questionar da venda de outro produto apenas quando já efetuou realmente 1 venda.

Att,

sentinela pra mim é um watchDog. Serve basicamente pra diaparar uma ação quando alguma coisa que ele monitore aconteça.

Por exemplo, resetar um contador se um overflow acontecer. Mas em um exemplo assim acho que o que Poneis123 falou é o correto, deve ser so ver o que o usuario digitou e sair do processo.

De resto, tem que fazer o que Poneis123 falou, colocar uma variavel mais externa que vai guardar o total das vendas.

no final de cada operacao tu manda o usuario entrar com um inteiro e quando vc ler, se for 1 vc continua se for 0 vc dai, sei la, algo desse tipo. Se tiver mais alg dificuldade fala ai que a gnt resolve! hehehe =)