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
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
FearX
Agosto 23, 2018, 1:20pm
#5
Ainda dá pra fazer a parte gráfica com Swing e fica maneiro, soma uns pontinhos extras na faculdade
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
lia7
Abril 27, 2022, 10:08pm
#11
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