iai pessoal eu estou com dificudade no uso do while
eu fiz este codigo para uma calculadora mais ele não esta copilando o calculo e volta para o menu
eu ja tentei um monte de coisa da uma força ai ou algum dica para melhor estruturação valeu..
int opcao;
int entrada;
int entrada2 = 0;
int soma = 1;
int div = 2;
int subtr = 3;
int mult = 5;
do {
JOptionPane.showMessageDialog(null, " Bem vindo a calculadora");
opcao = Integer.valueOf(JOptionPane.showInputDialog("Para as seguintes Operações use\n\n" +
" Soma [1]\n Divisão [2]\n Subtração [3]\n Multiplicação [5]\n Sair [0]"));
entrada = Integer.valueOf(JOptionPane.showInputDialog("entre com 1º valor "));
}
while (entrada != 0);
if (opcao == soma) {
entrada = entrada + entrada2;
JOptionPane.showMessageDialog(null, entrada);
} else if (opcao == div) {
entrada = entrada / entrada2;
JOptionPane.showMessageDialog(null, entrada);
} else if (opcao == mult) {
entrada = entrada * entrada2;
JOptionPane.showMessageDialog(null, entrada);
} else if (opcao == subtr) {
entrada = entrada - entrada2;
JOptionPane.showMessageDialog(null, entrada);
}
}
}
Para compilar as variáveis opcao e entrada devem ser inicializadas com algum valor!
britotr
zeimbic… na verdade nesse caso não há necessidade de laço, pois se vc deixar assim:
while(opcao==0);
ele não vai sair e no menu 0 é pra sair!!!
porem se vc deixar
while(opcao!=0);
ele nao vai sair enquanto vc nao digitar 0… aí sairia do programa…
vc pode fazer o seguinte… vou mudar e te mostrar…
britotr
veja o que eu fiz… acredito que melhorou… porem dá pra melhorar mais com mais algum metodo como pra exibir etc…
importjavax.swing.JOptionPane;publicclassNewClass{publicstaticvoidmain(String[]args){intopcao;intentrada;intentrada2=0;intsoma=1;intdiv=2;intsubtr=3;intmult=5;floatsaida=0.0f;JOptionPane.showMessageDialog(null," Bem vindo a calculadora");opcao=Integer.valueOf(JOptionPane.showInputDialog("Para as seguintes Operações use\n\n"+" Soma [1]\n Divisão [2]\n Subtração [3]\n Multiplicação [5]\n Sair [0]"));if(opcao==soma){entrada=receberNumero();entrada2=receberNumero();saida=entrada+entrada2;JOptionPane.showMessageDialog(null,saida);}elseif(opcao==div){entrada=receberNumero();entrada2=receberNumero();saida=entrada/entrada2;JOptionPane.showMessageDialog(null,saida);}elseif(opcao==subtr){entrada=receberNumero();entrada2=receberNumero();saida=entrada-entrada2;JOptionPane.showMessageDialog(null,saida);}elseif(opcao==mult){entrada=receberNumero();entrada2=receberNumero();saida=entrada*entrada2;JOptionPane.showMessageDialog(null,saida);}}privatestaticintreceberNumero(){returnInteger.valueOf(JOptionPane.showInputDialog("entre com 1º valor e sem seguida com o 2º valor "));}}
LucasAdri07
Fiz um projeto parecido, ele ficou assim:
importjavax.swing.JOptionPane;publicclassAddition{publicstaticvoidmain(Stringargs[]){doublenumber1,number2,result=0;intoperacao;Stringop;number1=Double.parseDouble(JOptionPane.showInputDialog("Digite o primeiro numero inteiro"));op=JOptionPane.showInputDialog("Digite a operação desejada:\n + - / * ");while(!op.equals("+")&&!op.equals("-")&&!op.equals("/")&&!op.equals("*")){op=JOptionPane.showInputDialog("Esta operação não existe \nDigite a operação desejada:\n + - / * ");}operacao=op.charAt(0);number2=Double.parseDouble(JOptionPane.showInputDialog("Digite o segundo numero inteiro"));switch(operacao){case'+':result=number1+number2;break;case'-':result=number1-number2;break;case'*':result=number1*number2;break;case'/':result=number1/number2;break;}JOptionPane.showMessageDialog(null,"O resultado de "+number1+op+number2+" = "+result,"Resultado",JOptionPane.QUESTION_MESSAGE);System.exit(0);}}
Veja que só usei o While, para a repetição da condição de que se o usuario digitasse uma operação invalida iria abrir uma mensagem
britotr
como o lucasadri07 usou ficou beleza… porem se vc quiser usar o while com numeros… seguindo o mesmo esquema de switch case tambem… fica assim…
importjavax.swing.JOptionPane;publicclassNewClass{publicstaticvoidmain(String[]args){intopcao=0,entrada=0,entrada2=0;floatsaida=0.0f;JOptionPane.showMessageDialog(null," Bem vindo a calculadora");while(opcao<0||opcao>4){opcao=Integer.valueOf(JOptionPane.showInputDialog("Para as seguintes Operações use\n\n"+" Soma [1]\n Divisão [2]\n Subtração [3]\n Multiplicação [4]\n Sair [0]"));}switch(opcao){case1:entrada=receberNumero();entrada2=receberNumero();saida=entrada+entrada2;JOptionPane.showMessageDialog(null,saida);break;case2:entrada=receberNumero();entrada2=receberNumero();saida=entrada/entrada2;JOptionPane.showMessageDialog(null,saida);break;case3:entrada=receberNumero();entrada2=receberNumero();saida=entrada-entrada2;JOptionPane.showMessageDialog(null,saida);break;case4:entrada=receberNumero();entrada2=receberNumero();saida=entrada*entrada2;JOptionPane.showMessageDialog(null,saida);break;}}privatestaticintreceberNumero(){returnInteger.valueOf(JOptionPane.showInputDialog("entre com 1º valor e sem seguida com o 2º valor "));}}
LucasAdri07
Gostei da menssagem.“Bem vindo à Calculadora”
Vou colocar na minha…
Brito, fui rodar o que você colocou, ele para de executar no “Bem Vindo à Calculadora”.