Calculadora Java simples

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

}

4 curtidas

Vlw!

1 curtida

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

Nunca pensei em fazer isso!!

2 curtidas

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

5 curtidas

Depois de anos respondendo, kkkkk tmj

Como assim? Respondi esse post em 2018.

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

1 curtida

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?

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.

2 curtidas

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