While

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…

[code] 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);
    }
   
    
}

}[/code] :lol:[color=red]Resolvido[/color] :lol:

Para compilar as variáveis opcao e entrada devem ser inicializadas com algum valor!

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…

veja o que eu fiz… acredito que melhorou… porem dá pra melhorar mais com mais algum metodo como pra exibir etc…


import javax.swing.JOptionPane;

public class NewClass{
    public static void main (String []args){


int  opcao;

         int entrada;
         int entrada2 = 0;
         int soma = 1;
         int div = 2;
         int subtr = 3;
         int mult = 5;

float saida = 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);
         } else if (opcao == div) {
              entrada = receberNumero();
              entrada2 = receberNumero();
              saida = entrada / entrada2;
              JOptionPane.showMessageDialog(null, saida);
         } else if (opcao == subtr) {
              entrada = receberNumero();
              entrada2 = receberNumero();
              saida = entrada - entrada2;
              JOptionPane.showMessageDialog(null, saida);
         } else if (opcao == mult) {
              entrada = receberNumero();
              entrada2 = receberNumero();
              saida = entrada * entrada2;
             JOptionPane.showMessageDialog(null, saida);
         }


     }

    private static int receberNumero(){
        return  Integer.valueOf(JOptionPane.showInputDialog("entre com 1º valor e sem seguida com o 2º valor "));
    }
}

Fiz um projeto parecido, ele ficou assim:

[code]
import javax.swing.JOptionPane;

public class Addition {

public static void main(String args[]) {
    double number1, number2, result = 0;
    int operacao;
    String op;

    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);
}

}[/code]

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

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…


import javax.swing.JOptionPane;

public class NewClass {

    public static void main(String[] args) {
        int opcao = 0, entrada = 0, entrada2 = 0;
        float saida = 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) {
            case 1:  entrada = receberNumero();
            entrada2 = receberNumero();
            saida = entrada + entrada2;
            JOptionPane.showMessageDialog(null, saida);
            break;
            
            case 2: 
            entrada = receberNumero();
            entrada2 = receberNumero();
            saida = entrada / entrada2;
            JOptionPane.showMessageDialog(null, saida);
            break;
            
            case 3:
            entrada = receberNumero();
            entrada2 = receberNumero();
            saida = entrada - entrada2;
            JOptionPane.showMessageDialog(null, saida);
        break;
            case 4:
            entrada = receberNumero();
            entrada2 = receberNumero();
            saida = entrada * entrada2;
            JOptionPane.showMessageDialog(null, saida);
            break;
        }
    }
        

    private static int receberNumero() {
        return Integer.valueOf(JOptionPane.showInputDialog("entre com 1º valor e sem seguida com o 2º valor "));
    }
}

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”.

Oi,

Algo do tipo:

[code] public static void main(String args[])
{
JOptionPane.showMessageDialog(null, " Bem vindo a calculadora");

	int opcao = 0;

	do
	{
		opcao = Integer
				.parseInt((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)
		{
			case 1:

				// Fazer os calculos.
				break;

			case 2:

				// Fazer os calculos.
				break;

			case 3:

				// Fazer os calculos.
				break;

			case 4:

				// Fazer os calculos.
				break;

			case 0:

				JOptionPane.showMessageDialog(
						null,
						"Diga Tchau Lilica");

				break;

			default:

				JOptionPane.showMessageDialog(
						null, "Opção inválida");

				break;
		}
	}
	while (opcao != 0);
}[/code]

Tchauzin!

[quote=lina]Oi,

Algo do tipo:

[code] public static void main(String args[])
{
JOptionPane.showMessageDialog(null, " Bem vindo a calculadora");

	int opcao = 0;

	do
	{
		opcao = Integer
				.parseInt((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)
		{
			case 1:

				// Fazer os calculos.
				break;

			case 2:

				// Fazer os calculos.
				break;

			case 3:

				// Fazer os calculos.
				break;

			case 4:

				// Fazer os calculos.
				break;

			case 0:

				JOptionPane.showMessageDialog(
						null,
						"Diga Tchau Lilica");

				break;

			default:

				JOptionPane.showMessageDialog(
						null, "Opção inválida");

				break;
		}
	}
	while (opcao != 0);
}[/code]

Tchauzin![/quote]

Estava faltando no projeto dele, no caso de o usuario digitar uma operação invalida, pedir para digitar novamente…

é… eu havia feito errado… hehehe

ficaria

        do {
            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]"));
        } while (opcao < 0 || opcao > 4);

[quote=lina]Oi,

Algo do tipo:

.
.
.
.
				case 0:

					JOptionPane.showMessageDialog(
							null,
							"Diga Tchau Lilica");

					break;

Tchauzin![/quote]
Lilica? hUAHuhauahu
Poderia fazer o usuário digitar o nome, e gravar com o scanner…
ficaria mais bonito que o Lilica! kkkk

nossa galera valeu mesmo deu para abrir a mente legal… valeu… abraço

Naõ esqueça de editar o post com as tags [resolvido]…

abraços!