[RESOLVIDO] Duvida. Será que o erro está em meu código ou no JGrasp?

Ola pessoal meu nome é Eric e eu estou cursando o primeiro ano de Sistemas de Informação, e como todo novato, estou cheio de duvidas. Eu ficaria muito grato se vocês pudessem me ajudar com minhas duvidas de iniciante, e com o passar do tempo, assim que eu for adquirindo mais conhecimento, eu possa ajudar outros membros.

Minha duvida é a seguinte:
Fiz um algorítimo no "JGrasp"baseado em uma calculadora usando switch e do/while para o usuário escolher a operação, digitar o numero e se o numero for diferente dos indicados na opção, o laço faz com que o programa apresente novamente a caixa de texto para selecionar novamente a opção de escolha de operação, porem, quando digito um valor diferente dos indicados, o programa fecha como se não houvesse o laço. Alguém pode me dizer se o erro está nas linhas de comando ou é do propário programa?

Segue abaixo o código.

[code]import javax.swing.JOptionPane;
public class Calculadora{
public static void Main(String[] args){
double num1, num2, aux;
int op;

		do{
			op = Integer.parseInt(JOptionPane.showInputDialog
			("Informe a Opção:\n1 Adição \n2 Subtração \n3 Multiplicação \n4 Divisão"));
		switch(op){
			case 1:
			num1 = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
			num2 = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
			aux = num1 + num2;
			JOptionPane.showMessageDialog(null, num1 + " + " + num2 + " = " + aux);
			break;
			case 2:
			num1 = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
			num2 = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
			aux = num1 - num2;
			JOptionPane.showMessageDialog(null, num1 + " - " + num2 + " = " + aux);
			break;	
			case 3:
			num1 = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
			num2 = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
			aux = num1 * num2;
			JOptionPane.showMessageDialog(null, num1 + " * " + num2 + " = " + aux);
			break;
			case 4:
			num1 = Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro valor"));
			num2 = Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo valor"));
			aux = num1 / num2;
			JOptionPane.showMessageDialog(null, num1 + " / " + num2 + " = " + aux);
			break;
		default :
			JOptionPane.showMessageDialog(null,"Opção invalida");					
		}	
		}while((op < 1) && (op > 4));
	}
}

[/code]
P.s: Esse é meu primeiro post e ainda não sei como formatar corretamente as linhas de código.

while((op < 1) && (op > 4));  

isso naum vai rolar pq naum existe nenhum numero q seja maior que 4 e menor que 1 ao mesmo tempo, o correto seria

while((op < 1) || (op > 4));  

na vdd o correto eh isso

while((op => 1) || (op  <= 4));   

[quote=jgtorres]na vdd o correto eh isso

while((op => 1) || (op <= 4)); [/quote]

Pode crer. A condição estava errada.

Então o certo seria.

while((op >= 1) || (op <= 4));

ainda me confundo com essas condições da tabela verdade.

Mesmo depois de efetuar essa alteração, ainda assim quando executo o programa e digito um número maior que 4, ele fecha, e não mostra a caixa de texto novamente. Será que é o programa?

naum entendi

Então, aparece a caixa de texto pedindo a opção desejada 1, 2, 3, ou 4, se eu digitar uma dessas alternativas ele pede para digitar o valor que serão armazenados nas variáveis, efetua o calculo e exibe o resultado, porem, se eu digitar uma opção que não seja entre 1 e 4, deveria apresentar novamente a caixa de texto para escolha das opções. Ai é que está o problema, quando digito um número maior que 4, ele exibe o texto que está no default do switch, e finaliza o programa, sendo que, deveria demostrar novamente a caixa de texto da escolha de opções 1,2,3 e 4. Acho que esse problema é do JGrasp, por que erro na sintaxe não é.

mas e como vc pretendi sair do programa?

Após escolhe uma das opções, digitar o valor a ser calculado e esse valor ser exibido, o programa é finalizado. Se digitar uma opção não especificada no switch, sei la por acidente, o programa deveria mostrar novamente a tela de escolha de opções.

Agora foi xD. Fiz uma opção para sair, se não quiser efetuar nenhum calculo e modifiquei alguns opções no JGrasps.

[code]case 5:
JOptionPane.showMessageDialog(null, “Finalizar”);
break;

default :
JOptionPane.showMessageDialog(null,"Opção invalida");					
}	
}while((op < 1) || (op > 5));[/code]

Obrigado pela ajuda cara. Valeu.

por nada :smiley: