import java.util.Scanner;;
public class Calculadora {
public static float somar(float num1, float num2){
float total;
total = num1 + num2;
return total;
}
public static float subtrair (float num1, float num2){
float total;
total = num1 - num2;
return total;
}
public static float multiplicar (float num1,float num2){
float total;
total = num1*num2;
return total;
}
public static float dividir (float num1, float num2){
float total;
total = num1/num2;
return total;
}
public static float potencia (float num1){
float total;
total = num1*num1;
return total;
}
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float val1, val2, resultado = 0, valortotal = 0;
String continuacao,operacao;
System.out.println("Digite o valor do 1º número:");
val1 = input.nextFloat();
System.out.println("Digite o valor do 2º número:");
val2 = input.nextFloat();
System.out.println("Digite a opção desejada +,-,*,/,^");
operacao = input.next();
do{
switch(operacao){
case "+":
resultado = somar(val1,val2);
break;
case "-":
resultado = subtrair(val1,val2);
break;
case "*":
resultado = multiplicar(val1,val2);
break;
case "/":
resultado = dividir(val1,val2);
break;
case "^":
resultado = potencia(val1);
break;
default:
System.out.println("Operação Inválida");
}
System.out.printf("O valor do calculo e: %.2f\n",resultado);
System.out.println("Deseja continuar (S/N)?\n");
continuacao = input.next();
}while (continuacao.equals("S"));
System.out.println("Operacao Finalizada");
Operações Matemáticas
2 Respostas
solicite o 1º número fora do loop, aí dentro do loop vc faz:
- pede operador
- pede 2º número
- calcula e atribui o resultado ao 1º número
- volta o loop até cansar
algoritmo besta, besta.
Boa noite.
É o seguinte
fiz algumas alterações no seu código e está funcionando
você só tem que ver qual é a linha correta para colocar em
operacao = input.toString();
pois aqui ele tem que ler a entrada padrão
e eu esqueci qual que é
estou na facul e vou entrar para aula agora mas tipo assim
você colocou os códigos no lugar certinho
só o do{
que estava no lugar errado pois ele não ia repetir o loop e ia
sair toda hora
falta só colocar a linha correta para funcionar
sobre switch não tenho certeza 100%
mas acredito fortemente que ele só funcione
se você passar números inteiros
por isso eu li a opção que a pessoa digitou
comparei com if e atribui um número em ordem
crescente relativo a qual operação a pessoa escolheu.
vou indo
se tiver dificuldade posta aí
abraço e sucesso
package pacoteA;
import java.util.Scanner;;
public class Calculadora {
public static float somar(float num1, float num2){
float total;
total = num1 + num2;
return total;
}
public static float subtrair (float num1, float num2){
float total;
total = num1 - num2;
return total;
}
public static float multiplicar (float num1,float num2){
float total;
total = num1*num2;
return total;
}
public static float dividir (float num1, float num2){
float total;
total = num1/num2;
return total;
}
public static float potencia (float num1){
float total;
total = num1*num1;
return total;
}
/**
* @param args
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
float val1, val2, resultado = 0, valortotal = 0;
String continuacao, operacao;
int opcao = 0;
do{
System.out.println("Digite o valor do 1º número:");
val1 = input.nextFloat();
System.out.println("Digite o valor do 2º número:");
val2 = input.nextFloat();
System.out.println("Digite a opção desejada +,-,*,/,^");
operacao = input.toString();
if(operacao == "+"){
opcao = 1;
}
else{
if(operacao == "-")
opcao = 2;
else{
if(operacao == "*")
opcao = 3;
else{
if(operacao == "/")
opcao = 4;
else{
if(operacao == "^")
opcao = 5;
}
}
}
}
switch(opcao){
case 1:
resultado = somar(val1,val2);
break;
case 2:
resultado = subtrair(val1,val2);
break;
case 3:
resultado = multiplicar(val1,val2);
break;
case 4:
resultado = dividir(val1,val2);
break;
case 5:
resultado = potencia(val1);
break;
default:
System.out.println("Operação Inválida");
}
System.out.println("O valor do calculo e: "+resultado);
System.out.println("Deseja continuar (S/N)?\n");
continuacao = input.next();
}while (continuacao.equals("S"));
System.out.println("Operacao Finalizada");
}
}