Principiante em Java

Oi pessoal, esta é a primeira vez que posto por aqui e gostaria da ajuda de vocês. Sou principiante em programação e estou estudando por conta própria pelo livro Java Como Programar quarta edição.
Estou tendo problemas em resolver um exercício do livro, que pede para criar um programa onde o usuário digita um código de um produto e a quantidade vendida na semana e o programa calcula o resultado final. O exercício pede que eu utilize a estrutura switch e um sentinela para finalizar a entrade de dados pelo usuário.
Escrevi o código abaixo, mas o resultado é sempre 0.0. Alguem poderia me dizer o que estou fazendo de errado? Dicas e concelhos adicionais são bem vindos. Muito obrigado.

[code]
// calcula as vendas da semana

import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Vendas {

public static void main ( String [] args )
{
	String number,
	       text = "",
	       amount = "";
	int number_product, 
	    amount_product = 0;
	
	double value = 0,
	       results = 0;
	
	JTextArea outputArea = new JTextArea ( 17, 20 );
	
	number = 
		JOptionPane.showInputDialog( "Digite o numero do produto (1 a 5 ou -1 para sair)" );
	
	number_product = Integer.parseInt( number );
	
	while ( number_product != -1 ){
		
		amount = 
			JOptionPane.showInputDialog( "Digite a quantidade vendida do produto" );
		
		amount_product = Integer.parseInt ( amount );
		
		switch ( number_product ){
		
		case 1:
			value = 2.98;
			break;
			
		case 2:
			value = 4.50;
			break;
			
		case 3:
			value = 9.98;
			break;
			
		case 4:
			value = 4.49;
			break;
			
		case 5:
			value = 6.87;
			break;
			
			default:
				text = "Valor invalido";
				
			results += (value * (double) amount_product );
			
		
			
		}// fim de switch
		
		number = 
			JOptionPane.showInputDialog( "Digite o numero do produto (1 a 5 ou -1 para sair)" );
		
		number_product = Integer.parseInt( number );
		
	}// fim de while
	
	text = "Valor total de todos os produtos vendidos na semana passada foi de: " 
		+ results;
	
	outputArea.setText( text );
	
	JOptionPane.showMessageDialog( null, outputArea,
			"Resutado das Vendas da Semana", JOptionPane.INFORMATION_MESSAGE );
	
	System.exit( 0 );
	
	
}// fim do metodo main

}[/code]

Sua chave para fechar o switch está no lugar errado. Ela deveria estar assim:

 			case 5:
 				value = 6.87;
 				break;
 				
 			default:
 				text = "Valor invalido";
 				break;
 			} // fim de switch 
 			results += (value * (double) amount_product );
 				
 			
 				

OK?

Que burrice a minha… valeu.
Muito obrigado.

O tipo de erro que você cometeu é um dos mais chatos para debugar.
Para consertá-lo, só com um pouco de atenção e lógica, que são coisas que se aprendem com o tempo.
Não fique triste; isso ainda vai ocorrer com você várias vezes - e isso não é uma praga, mas uma constatação.
Se eu escrevo um programa sem um bug, acho que fiz alguma coisa errada - talvez tenha lido errado a especificação :stuck_out_tongue: