gpt4 book ai didi

java - 我的 Java 计算器代码中有未知错误

转载 作者:行者123 更新时间:2023-12-01 17:03:40 25 4
gpt4 key购买 nike

我是一名非常年轻且缺乏经验的 Java 程序员,试图理解高中计算机科学类(class)中讨论的一些概念。

目前,我正在尝试使用 Java 制作一个计算器,但在我的代码中遇到了错误...我一直在试图找出问题的原因,但我完全陷入困境。我正在尝试创建一个计算器,让用户在一行中输入一个方程,通过解析,程序应该能够给我一个正确的答案。目前,我只编写了数学程序来计算带有两个操作数(+、-、*、/、^)的方程,但我也希望我的程序能够计算带有单个操作数(绝对值、sin、cos、tan)的方程。

这是我到目前为止所拥有的:

package calculator;
import java.util.Scanner;

public class Calculator {

public class Maths {

double add(double a, double b) {
double answer = a+b;
return answer;
}

double subtract(double a, double b) {
double answer = a-b;
return answer;
}

double multiply(double a, double b) {
double answer = a*b;
return answer;
}

double divide(double a, double b) {
double answer = a/b;
return answer;
}

double power(double a, double b){
double answer =a;

for (int x=2; x<=b; x++){
answer *= a;
}

return answer;
}

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

Maths maths = Maths();

double answer = 0;
double inputA, inputB;
char operator;
boolean done = false;

while (done == false) {
System.out.print("Please enter your equation: ");

inputA = input.nextDouble();
operator = input.next().charAt(0);
inputB = input.nextDouble();

if (operator == '+') {
answer = maths.add(inputA, inputB);
}

if (operator == '-') {
answer = maths.subtract(inputA, inputB);
}

if (operator == '*') {
answer = maths.multiply(inputA, inputB);
}

if (operator == '/') {
answer = maths.divide(inputA, inputB);
}

if (operator == '^') {
answer = maths.power(inputA, inputB);
}

System.out.println(answer);
}

input.close();

}

}

到目前为止,我觉得我的代码似乎朝着正确的方向前进:除了有一个重大错误,我不确定其原因。 public class Maths 在我的主代码块中不起作用。当我创建这个时,我的想法是使用过程分解并创建一个单独的方法来进行计算,而实际的变量集合将在主类中发生。

我的 IDE 在位于主类中的 Maths maths = Maths(); 处出现错误。

如果我能得到一些帮助来找出和理解当前问题的根源,以便我可以修复我的程序并避免将来出现此类错误,我将不胜感激!

提前致谢

最佳答案

您错过了这里的

Maths maths = Maths();

应该是

Maths maths = new Maths();

这个Maths是一个内部类。因此,您需要按如下方式更改实例化以更正所有错误。

Maths maths =new Calculator().new Maths();

关于java - 我的 Java 计算器代码中有未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26479493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com