public class HomeworkDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double result = 0;
while (scanner.hasNextDouble()) {
double i = scanner.nextDouble();
String str = scanner.next();
double j = scanner.nextDouble();
switch (str) {
case "+":
result = add(i, j);
System.out.println(result);
break;
case "-":
result = minus(i, j);
System.out.println(result);
break;
case "*":
result = multiply(i, j);
System.out.println(result);
break;
case "/":if(j==0){
System.out.println("除数不能为零");
break;
}else
result = divide(i, j);
System.out.println(result);
break;
}if (str.equals("quit")){
System.out.println("退出计算器");
break;
}
}scanner.close();
}
//加
public static double add ( double a , double b){
return a + b;
}//减
public static double minus ( double a , double b){
return a - b;
}//乘
public static double multiply ( double a , double b){
return a * b;
}//除
public static double divide ( double a , double b){
return a / b;
}
}
Problemas encontrados: 1. Usar scanner.hasNext como la expresión booleana de while, lo que da como resultado que no se asigne un valor al primer número cuando se ingresa un nuevo conjunto de datos a calcular, y salta directamente al juicio del analizador. .hasNext. Así que cambie la expresión booleana de while a scanner.hasNextDouble
2. Cuando el divisor es cero, no solo genera "El divisor no puede ser cero", sino que también genera el valor 0 asignado al resultado al principio y agrega la ruptura; luego resuelve el problema.
3. Usando la idea de la solución paso a paso, puedes hacer una calculadora que pueda hacer operaciones de suma y una calculadora que pueda hacer cuatro operaciones aritméticas.