Calculadora Console em Java

14 respostas
L

Olá,
Preciso fazer uma calculadora e quando o usuário apertar enter o menu deve aparecer de novo, mas isso está acontecendo sem o usuário ter precionado nada. Alguém pode me ajudar?
E também preciso saber como faço fechar o programa quando ele digitar 5.

public class ProjetoCalculadoraApp {
      /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner scn = new Scanner (System.in);

        int iOpcao = 0;
        double dValor1;
        double dValor2;
        double dResultado;

        while (iOpcao <= 5 ){


            switch (iOpcao) {
                case 1:
                    System.out.println();
                    System.out.println ("Adição");
                    System.out.println();
                    System.out.println("Entre com o primeiro valor:");
                    dValor1 = scn.nextDouble();

                    System.out.println();
                    System.out.println("Entre com o segundo valor:");
                    dValor2 = scn.nextDouble();

                    dResultado = dValor1 + dValor2;
                    System.out.println("O Resultado é:" + dResultado);

                    System.out.println();
                    System.out.println ("Pressine 'Enter' para retornar ao menu principal");
                    break;
                case 2:
                    System.out.println();
                    System.out.println ("Subtração");
                    System.out.println();
                    System.out.println("Entre com o primeiro valor:");
                    dValor1 = scn.nextDouble();

                    System.out.println();
                    System.out.println("Entre com o segundo valor:");
                    dValor2 = scn.nextDouble();

                    dResultado = dValor1 - dValor2;
                    System.out.println("O Resultado é:" + dResultado);

                    System.out.println();
                    System.out.println ("Pressine 'Enter' para retornar ao menu principal");
                    break;
                case 3:
                    System.out.println();
                    System.out.println ("Multiplicação");
                    System.out.println();
                    System.out.println("Entre com o primeiro valor:");
                    dValor1 = scn.nextDouble();

                    System.out.println();
                    System.out.println("Entre com o segundo valor:");
                    dValor2 = scn.nextDouble();

                    dResultado = dValor1 * dValor2;
                    System.out.println("O Resultado é:" + dResultado);

                    System.out.println();
                    System.out.println ("Pressine 'Enter' para retornar ao menu principal");
                    break;
                case 4:
                    System.out.println();
                    System.out.println ("Divisão");
                    System.out.println();
                    System.out.println("Entre com o primeiro valor:");
                    dValor1 = scn.nextDouble();

                    System.out.println();
                    System.out.println("Entre com o segundo valor:");
                    dValor2 = scn.nextDouble();

                    dResultado = dValor1 / dValor2;
                    System.out.println("O Resultado é:" + dResultado);

                    System.out.println();
                    System.out.println ("Pressine 'Enter' para retornar ao menu principal");
                    break;
                case 5:

                    break;
            }
            System.out.println("Calculadora em Java");
            System.out.println();
            System.out.println("1. Adição");
            System.out.println("2. Subtração");
            System.out.println("3. Multiplicação");
            System.out.println("4. Divisão");
            System.out.println("5. Sair");
            System.out.println();
            System.out.println("Escolha a opção:");

            iOpcao = scn.nextInt();
            
        }
    }
}

14 Respostas

UMC

Bem vinda ao GUJ!!
Quando for postar códigos use as TAGS de [code ] e [ /code]

Tem como você postar o erro que ocorre?

vlw

L

Obrigada pela dica.

Eu consegui arrumar os erros, mas ainda não descobri como fazer para o menu voltar a parecer quando o usuário digitar enter.
E também não sei como fechar o programa quando digitar 5.
Pode me ajudar?

UMC

Procure sobre eventos de teclado!

vlw

aajjbb

eu tambem sou bem iniciante em java, mas, qual o significado desses “case” e “switch” no meio do codigo.

AITech_IX

aajjbb,

A instrução Switch permite executar instruções condicionalmente baseado em uma expressão.

É assim:

caso aconteça/seja “a” faça …
“b” faça …

Estude mais a respeito de lógica de programação. É mais genérico.

abs

aajjbb

opa, obrigado pela explicacao, na verdade, estou estudando muito logica, fazendo curso, mas ainda estou nos "loops"for e while rsrsrs, paciencia.

AITech_IX

Mas é nisso aí que consiste o segredo da coisa! Se o sujeito tem lógica para programar, aprender uma linguaguem é “quase” só memorizar seus comandos!! :smiley:

Boa sorte aí!!

abs

wellington7

Lydia:
Obrigada pela dica.

Eu consegui arrumar os erros, mas ainda não descobri como fazer para o menu voltar a parecer quando o usuário digitar enter.
E também não sei como fechar o programa quando digitar 5.
Pode me ajudar?

while (iOpcao <= 5 )

este while deixa o seu programa rodando enquanto o usuário digitar qualquer valor menor ou igual a 5.
Se quiser que o programa termine ao digitar 5 substitua por

while (iOpcao <= 4 )
L

Obrigada! Vou fazer isso… Aí não preciso colocar o ultimo case, preciso?

ViniGodoy

Lydia:
Obrigada! Vou fazer isso… Aí não preciso colocar o ultimo case, preciso?

Não, não precisa.

M

ViniGodoy:
Lydia:
Obrigada! Vou fazer isso… Aí não preciso colocar o ultimo case, preciso?

Não, não precisa.


Na realidade o mais correto seria aceitar qualquer valor e no switch verificar: se for um valor de 1 a 4, realiza a operação; se for 5, quebra o loop; se for diferente disso, pede para o usuário digitar novamente.

A lógica explicada acima deve ser mais próxima do que se espera, pois pelo que foi dito, o objetivo é sair do programa quando o valor digitado for 5, e não maior que 4 (sem contar que números negativos poderiam bagunçar toda a lógica do programa).

L

Muito obrigada pela ajuda!

R

tenho uma calculadora mais avançada com botoes. bem legal.
olha o link. vale para estudo, pelo menos no futuro quem sabe.

http://www.raghyjose.net/calculadora.php

pedroroxd

Quando tava começando, o professor mandou fazer isso…
Eu que era noob, chamava o método main sempre…
Mas o professor foi ogro de não ter encinado!

Se quizer dar uma olhada no tópico, tá aki: http://www.guj.com.br/posts/list/139184.java#748910

Criado 17 de abril de 2010
Ultima resposta 21 de abr. de 2010
Respostas 14
Participantes 9