[RESOLVIDO] Laço com problema

4 respostas
fabricioempresa

Seguinte pessoaal tenho uma tarefa da faculdade pra fazer e to tendo algumas dificuldades com o laco de repeticao gostaria só que vocês dessem uma olhada e me dessem alguma dica

Segue

O meu problema eh q ele sempre sai do laco de repeticao
import util.leitura;


public class Cardapio {


	public static void main(String[] args) {
		short produto,quantidade;
		String nome;
		char opc;
		do {
		System.out.println("CARDAPIO");
		System.out.println("101-Cachorro Quente......... 2,50");
		System.out.println("102-Hamburger................. 4,50");
		System.out.println("103-Pizza........................... 11,30");
		System.out.println("104-Refrigerante............... 1,50");
		System.out.println("105-Cerveja....................... 5,00");
		System.out.println("Digite o nome = ");
		nome = leitura.leString();
		System.out.println("Digite o código do produto = ");
		produto = leitura.leShort();
		System.out.println (" Digite a quantidade de produtos = ");
		quantidade = leitura.leShort();
		short primeiro =(short)valor1 (produto,quantidade);
		System.out.print("O total do cliente " + nome + 
				" teve o total de = " +primeiro);
		System.out.print("Deseja calcular a conta de mais algum cliente?");
		opc = leitura.leChar();
		}while(opc==('n')||opc==('N'));
	
	
	}
	
		public static int valor1 (short produ1,short quant1) {
			int total=0;
			char opc;
				do { 
				if (produ1== 101){
					 total=(int) (quant1*2.5);}  
					else if (produ1==102){
						total= total+(int) (quant1*4.5); 
					}
					else if (produ1==103) {
						total=(int) (quant1*11.30);
					}	
					else if (produ1==104) {
						total=(int) (quant1*1.5);
					}
					else if (produ1==105){
						total=(int) (quant1*5.0);
					}
					else {
					System.out.println ("Número Inválido1");
					}
					System.out.println ("Deseja inserir mais algum item para esse cliente?");
					opc = leitura.leChar();    
					
			} while (opc==('n')||opc==('N')); 
			return total;

			}
	
	}
	
/*
 * 20)	Continuar o cardapio para que fique assim: mostre o menu e leia o nome do cliente, 
 * o código e a quantidade de cada item adquirido. A cada item digitado, fazer a pergunta:
 *  ?Deseja inserir mais algum item para esse cliente??. Se a resposta for negativa, calcular
 *   e mostrar o valor da conta a pagar por aquele cliente, assim: ?. A seguir, perguntar: ?Deseja calcular a conta de mais algum cliente?? 
 *    Encerrar o programa apenas se a resposta for negativa. Realizar os testes em: código do item, 
 *    quantidade (positiva) e nas perguntas se quer continuar ou não.
 */

Desde ja agradeco a todos

4 Respostas

AITech_IX

Ele sai do laço pq a condiçao do seu while está errada…repare que ele só executa (do) enquanto opc for n ou N. E o que vc quer é justamente o contrario…executar equanto

opc != 'n' || opc != 'N';

nao tive como testar aqui, mas acho que é isso! :slight_smile:

abs

alexandre_adoliveira

É exatamente o que o AITech IX disse; é erro na expressão lógica do seu do…while, que também poderia ser representada assim:

do{
//seu codigo aqui
}while(opc == 's' || opc == 'S');

Abraços!

fabricioempresa

tentarei fazer desse jeito assim que tiver testado coloco aqui a minha resposta vlw

fabricioempresa

Bom pessoal a minha dúvida era realemnte aquela e conswgui resolver com a ajuda de vocês Agradeço de montão abraço

Criado 3 de maio de 2010
Ultima resposta 5 de mai. de 2010
Respostas 4
Participantes 3