When you declare num = entrada.nextFloat() != 0
in this way, you end up assigning a value of type boolean
to num
, because the expression of this form returns whether the number entered is equal to zero, that is, a true
or% with%. As you previously stated that num is a false
you get the error of incompatible types.
With a simple modified your code works:
import java.util.Scanner;
public class Desafio {
public static void main(String args[]) {
char op;
float result = 0;
float num;
Scanner entrada = new Scanner(System.in);
op = entrada.next().charAt(0);
switch (op) {
case '+':
System.out.println("Você escolheu soma!");
do {
System.out.println("Digite um número para somar: (Digite 0 para sair)");
num = entrada.nextFloat();
result += num;
} while (num != 0);
break;
case '-':
System.out.println("Você escolheu subtração!");
do {
System.out.println("Digite um número para subtrair: (Digite 0 para sair)");
num = entrada.nextFloat();
result -= num;
} while (num != 0);
break;
case 'x':
System.out.println("Você escolheu multiplicação!");
do {
System.out.println("Digite um número para multiplicar: (Digite 0 para sair)");
num = entrada.nextFloat();
result *= num;
} while (num != 0);
break;
case '/':
System.out.println("Você escolheu divisão!");
do {
System.out.println("Digite um número para dividir: (Digite 0 para sair)");
num = entrada.nextFloat();
result /= num;
} while (num != 0);
break;
default:
System.out.println("Nenhuma operação matemática escolhida.");
}
System.out.println(result);
}
}
Two remarks: Always place the default on the switch case to handle if no condition is met and remember that class name always with the first capital letter;)
That's all, good studies!