Calculadora Java simples

10 respostas
programaçãojava
jotaStyle

DIVIRTA-SE!

import java.util.Scanner;
public class main {

public static void main(String[] args) {
	
	int n1;
	int n2;
	
	String  operacao = "";
	int control=0;
	
	Scanner entrada = new Scanner(System.in);
	
	System.out.print("Digite a operação desejada (+, -, *, /): ");
	operacao = entrada.nextLine();
	
	System.out.println("Digite um valor: ");
	n1 = Integer.parseInt(entrada.nextLine());
	
	System.out.println("Digite um valor: ");
	n2 = Integer.parseInt(entrada.next());
	
	if(operacao.equals("+")) {
		System.out.println("O resultado da subtração é: " +(n1 + n2));
		control++;			
	}
	
	if(operacao.equals("-")) {
		System.out.println("O resultado da subtração é: " +(n1 - n2));
		control++;		
	}
	
	if(operacao.equals("*")) {
		System.out.println("O resultado da multiplicação é: " +(n1 * n2));
		control++;			
	}
	
	if(operacao.equals("/")) {
		System.out.println("O resultado da divisão é: " +(n1 / n2));
		control++;			
	}
	
	if(control == 0) {
		System.out.println("Oopração inválida, Tente novamente!");
					
	}
	
}

}

10 Respostas

ENGENHEIRO_DE_SOFTWA

Vlw!

staroski

Se quiser um pouco mais orientado à objetos:

O enum das operações:

enum Operacao {
    ADICAO("adição", "+") {
        @Override
        double executar(double a, double b) {
            return a + b;
        }
    },

    SUBTRACAO("subtração", "-") {
        @Override
        double executar(double a, double b) {
            return a - b;
        }
    },

    MULTIPLICACAO("multiplicação", "*") {
        @Override
        double executar(double a, double b) {
            return a * b;
        }
    },

    DIVISAO("divisão", "/") {
        @Override
        double executar(double a, double b) {
            return a / b;
        }
    };

    final String nome;
    final String operador;

    private Operacao(String nome, String operador) {
        this.nome = nome;
        this.operador = operador;
    }

    static String[] operadores() {
        Operacao[] operacoes = values();
        int qtd = operacoes.length;
        String[] operadores = new String[qtd];
        for (int i = 0; i < qtd; i++) {
            operadores[i] = operacoes[i].operador;
        }
        return operadores;
    }

    static Operacao porOperador(String operador) {
        for (Operacao operacao : values()) {
            if (operacao.operador.equals(operador)) {
                return operacao;
            }
        }
        return null;
    }

    abstract double executar(double a, double b);
}

A calculadora em si:

import java.io.PrintStream;
import java.util.Arrays;
import java.util.Scanner;

public class Calculadora {

    private static final Scanner entrada = new Scanner(System.in);
    private static final PrintStream saida = System.out;

    public static void main(String[] args) {
        try {
            Calculadora programa = new Calculadora();
            programa.executar();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    private void executar() {
        Operacao operacao = null;
        while (operacao == null) {
            saida.print("Digite a operação desejada " + Arrays.toString(Operacao.operadores()) + ": ");
            String operador = entrada.nextLine();
            operacao = Operacao.porOperador(operador);
            if (operacao == null) {
                saida.println("Operação inválida, Tente novamente!");
            }
        }
        saida.println("Digite um valor: ");
        double n1 = Double.parseDouble(entrada.nextLine());
        saida.println("Digite um valor: ");
        double n2 = Double.parseDouble(entrada.nextLine());

        double resultado = operacao.executar(n1, n2);
        saida.println("O resultado da " + operacao.nome + " é: " + resultado);
    }
}
Ofidomundo

Nunca pensei em fazer isso!!

FearX

Ainda dá pra fazer a parte gráfica com Swing e fica maneiro, soma uns pontinhos extras na faculdade :smile:

jotaStyle

Depois de anos respondendo, kkkkk tmj

staroski

Como assim? Respondi esse post em 2018.

jotaStyle

no caso eu te respondendo depois de ano quis dizer kkkk ficou vago mesmo, foi mal

L

boa tarde,

Eu uso o REPLIT e fica dando este erro.

javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java

Main.java:10: error: cannot find symbol

Scanner input = new Scanner(System.in);

^

symbol:   class Scanner

location: class Main

Main.java:10: error: cannot find symbol

Scanner input = new Scanner(System.in);

^

 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java

Main.java:11: error: cannot find symbol

Scaner input = new Scaner(System.in);

^

symbol:   class Scaner

location: class Main

Main.java:11: error: cannot find symbol

Scaner input = new Scaner(System.in);

^

 javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java

Main.java:3: error: class main is public, sho

o que seria?

staroski

Deve ter esquecido de importar o java.util.Scanner.

Você digitou Scaner o correto é Scanner.

Java diferencia letras maiúsculas de minúsculas.
Você tem um arquivo chamado Main.java mas declarou sua classe como main.
Renomeie sua classe para Main.

L

Você poderia fazer um programa de calculador utilizando as 4 operações nesse formato, : 2 * 1 = 2, 2 * 2= 4 em Java usando o if? O professor passou e está difícil

Criado 23 de agosto de 2018
Ultima resposta 27 de abr. de 2022
Respostas 10
Participantes 7