.class 错误无法弄清楚

.class error cant figure it out

.class 预计在第 68 行 return 双结果; 该程序无法编译,但我无法弄清楚有人可以帮忙吗?

这是一个基本的计算器 java 文件 tkaes 用户编号并根据输入的运算符对其进行数学运算

// Calculator.java - This program performs arithmetic, ( +. -, *. /, % ) on two numbers
// Input:  Interactive.
// Output:  Result of arithmetic operation

import javax.swing.*;


public class Calculator
{
    public static void main(String args[]) 
    {
        double numberOne, numberTwo;                
        String numberOneString, numberTwoString;
        String operation;
        double result ;     

        numberOneString = JOptionPane.showInputDialog("Enter the first number: ");
        numberOne = Double.parseDouble(numberOneString); 
        numberTwoString = JOptionPane.showInputDialog("Enter the second number: ");
        numberTwo = Double.parseDouble(numberTwoString); 
        operation = JOptionPane.showInputDialog("Enter an operator (+.-.*,/,%): ");

        // Call performOperation method here        

        result = performoperation(numberOne, numberTwo, operation);
        System.out.format("%.2f",numberOne);
        System.out.print(" " + operation + " ");
        System.out.format("%.2f", numberTwo);
        System.out.print(" = ");
        System.out.format("%.2f", result);

        System.exit(0);

    } // End of main() method.


    // Write performOperation method here.

public static double performOperation(double numberOne, double numberTwo, String operation)

{


double result  = 0;


if (operation .equals("+")){
result = numberOne + numberTwo;
}

else if (operation .equals("-")){
result = numberOne - numberTwo;
}

else if (operation .equals("/")){
result = numberOne / numberTwo;
}

else if (operation .equals("*")){
result = numberOne * numberTwo;
}

else if (operation .equals("%")){
result = numberOne % numberTwo; 
}


return double result; 


System.out.println("The result is " + result);


}// END


} // End of Calculator class.

您的代码有一些错误:

  1. 您正在尝试 return double result,而实际上,您应该只 return result.

  2. 在您的 main 方法中,您正在调用一个不存在的方法,即 'performoperation',而您的方法称为 'performOperation'。 Java区分大小写。

  3. 您试图在 return 编辑后打印结果,但这是行不通的。 return.

  4. 之前必须先打印

我修复了你的一些代码,并将你的 if/else 语句转换为 switch case(我认为当你有重复代码时更容易处理)。

import javax.swing.*;

public class Calculator {

public static void main(String args[]) {
    String numberOneString = JOptionPane.showInputDialog("Enter the first number: ");
    double numberOne = Double.parseDouble(numberOneString);
    String numberTwoString = JOptionPane.showInputDialog("Enter the second number: ");
    double numberTwo = Double.parseDouble(numberTwoString);
    String operation = JOptionPane.showInputDialog("Enter an operator (+.-.*,/,%): ");

    // Call performOperation method here        
    double result = performOperation(numberOne, numberTwo, operation);
    System.out.format("%.2f", numberOne);
    System.out.print(" " + operation + " ");
    System.out.format("%.2f", numberTwo);
    System.out.print(" = ");
    System.out.format("%.2f", result);

    System.exit(0);

} // End of main() method.
// Write performOperation method here.

public static double performOperation(double numberOne, double numberTwo, String operation) {
    double result = 0;

    switch (operation) {
        case "+":
            result = numberOne + numberTwo;
            break;
        case "-":
            result = numberOne - numberTwo;
            break;
        case "/":
            result = numberOne / numberTwo;
            break;
        case "*":
            result = numberOne * numberTwo;
            break;
        case "%":
            result = numberOne % numberTwo;
            break;
        default:
            break;
    }

    System.out.println("The result is " + result);
    return result;

}// END
} // End of Calculator class.

您有多个错误:

1.Error: 这是不正确的,因为该方法的名称是 performOperation:

result = performoperation(numberOne, numberTwo, operation);

所以你必须把它改成:

result = performOperation(numberOne, numberTwo, operation);

2。错误:这里的语法不正确,如果你仔细想想,在 return 语句之后有代码是没有意义的,因为该方法将 return 与它的任何值有:

return double result; 

System.out.println("The result is " + result);

所以将其更改为:

System.out.println("The result is " + result);

return result;

有两点值得一提:

  1. 例如,当您将变量与字符串进行比较时,最好这样做:

    "+".equals(运算)

这样你就可以避免 NullPointerException(想想如果你的代码由于某种原因得到 null 作为操作会发生什么? 它将 null 与“+”字符串进行比较,您将得到 NullPointerException)。您可以查看 Enum 的概念,以更安全的方式处理操作 ;)

  1. 应用程序将在 main 方法结束时终止,因此 System.exit(0) 在 Java.[=43 中不需要=]