-1
Hi, I have a problem with calculator, when you enter the switch case, does not change operation and does not resume to default.
package aprimoramentos;
import java.util.Locale;
import java.util.Scanner;
public class Calculadora {
public static double somarValores(double x, double y, double z) {
z = y + x;
return z;
}
public static double multiplicarValores(double x, double y, double z) {
z = x * y;
return z;
}
public static double subtrairValores(double x, double y, double z) {
z = x - y;
return z;
}
public static double dividirValores(double x, double y, double z) {
z = x / y;
return z;
}
public static double restoDivisao(double x, double y, double z) {
z = x % y;
return z;
}
public static double potenciaValores(double x, double y, double z) {
z = Math.pow(x, y);
return z;
}
public static void main(String[] args) {
Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
double var1 = 0 , var2 = 0 , result = 0;
String captcha;
int escolha =0 , i = 0;
switch (escolha) {
case 0:
System.out.printf("Escolha a opção: %n1 Adição%n2 Subtração%n3 Multiplicacao%n4 Divisao%n5 Resto da divisão%n6 Potenciação%n");
escolha = sc.nextInt();
System.out.println("Digite os valores: ");
var1 = sc.nextDouble();
var2 = sc.nextDouble();
case 1:
result = somarValores(var1, var2, result);
System.out.println("Resultado: " + result);
break;
case 2:
result = subtrairValores(var1, var2, result);
System.out.println("Resultado: " + result);
break;
case 3:
result = multiplicarValores(var1, var2, result);
System.out.println("Resultado: " + result);
break;
case 4:
result = dividirValores(var1, var2, result);
System.out.println("Resultado: " + result);
break;
case 5:
result = potenciaValores(var1, var2, result);
System.out.println("Resultado: " + result);
break;
default:
System.out.printf("Deseja fazer mais alguma operação ? (s/n)%n");
captcha = sc.next();
if (captcha == "s") {
escolha = 0;
} else if (captcha == "n") {
System.out.println("Obrigado :D");
i = 99 ;
} else {
System.out.println("Opção invalida");
escolha = 99;
}
}
}
}
Someone can help me ?
It seems that
escolha
will always be zero no?int escolha =0 , i = 0;
– nullptr
I think you’re using the wrong structure to solve your problem, look for
while
– nullptr
It does not enter the default, because after the case 0, the case 1 gives a break, soon the switch is terminated, is the expected behavior for this decision structure.
– Daniel Mendes