Unreachable statement , Erro Chato!

2 respostas
V
To Aprendendo Java Ainda e Por isso Fazendo Muito Exercícios, Nesse em Particular, ele  dando erro de unreachable statement, qnd eu tenho mutiplicar um int com um Double, dêem uma olhada ae,.:





import javax.swing.*;


import java.text.DecimalFormat;





public class Exercicio05 {


	public static void main(String args[]) {





		String input,texto = "ProdutotTotal das Vendasn";


		int produto,quantidade;


		double valor,total;





		JTextArea ta = new JTextArea(10,10);


		JScrollPane  sp = new JScrollPane(ta);





		do {





	input = JOptionPane.showInputDialog("Digite o Produto Vendido.:n-1                               para Sair Do Programa","1 a 5");





	if(Integer.parseInt(input) == -1)


		break;





	produto = Integer.parseInt(input);


	input = JOptionPane.showInputDialog("Digite a quantidade vendida      desse Produto.:n-1 para Sair Do Programa","em Reais(R$)");





	if(Integer.parseInt(input) == -1)


			break;





		quantidade = Integer.parseInt(input);





		switch(produto) {


			case 1: valor = 2.98;


			case 2: valor = 4.50;


			case 3: valor = 9.98;


			case 4:	valor = 4.49;


			case 5:	valor = 6.87;


			default: JOptionPane.showMessageDialog(null,"Valor Digitado                                     Incorreto Por Favor tente Novamente","Valor Incorreto",                                 JOptionPane.ERROR_MESSAGE);


					 continue;


			}





		total =  (double)quantidade * valor;  // ERRO AKI !!! :-Y


		texto += produto + "t" + total +"n";





		} while(Integer.parseInt(input) != -1);





		ta.setText(texto);


		JOptionPane.showMessageDialog(null,texto,"Resultado",JOptionPane.PLAIN_MESSAGE);





	}


}

2 Respostas

J
Na verdade o erro está no seu <b>switch.</b> Ele nunca vai parar de executar. Isso porque, no fim de <b>case</b> vc deve colocar um <b>break</b> para que o proximo case não seja executado. Do jeito que está, independendo do valor de produto ele vai executar o <b>default</b> o qual contem um continue.





Dessa maneira, qualquer coisa abaixo do <b>continue</b> não será executada. Por isso estava dando unreachable statement.





Tente fazer o seu switch assim:





switch(produto) {


case 1: valor = 2.98; break;


case 2: valor = 4.50; break;


case 3: valor = 9.98; break;


case 4: valor = 4.49; break;


case 5: valor = 6.87; break;


default: JOptionPane.showMessageDialog(null,"Valor Digitado Incorreto Por Favor tente Novamente","Valor Incorreto", JOptionPane.ERROR_MESSAGE);


continue;


}
V

Valew Vei, nem tinha visto, é a falta de experiência na linguagem. :-]

Criado 21 de março de 2003
Ultima resposta 21 de mar. de 2003
Respostas 2
Participantes 2