gpt4 book ai didi

java - 在 Java 计算器中允许多个输入

转载 作者:行者123 更新时间:2023-11-29 07:01:51 25 4
gpt4 key购买 nike

我正在 Eclipse 中开发一个小型计算器,用户可以在其中输入一个方程式,如 1 + 1。但是,我不确定如何允许用户输入更复杂的方程式,例如 1 + 2 * 3/4

此外,如果用户尝试输入一个不是有效方程式的字符串,我希望出现一个错误。这是我的代码:

public static double addition(double x, double y) // The Addition Operation
{
double add = x + y;
return add;
}

public static double subtraction(double x, double y) // The Subtraction Operation
{
double sub = x - y;
return sub;
}

public static double division(double x, double y) // The Devision Operation
{
double div = x / y;
return div;
}

public static double multiplication(double x, double y) // The Multiplication Operation
{
double multi = x * y;
return multi;
}

public static double factorial(double x) // The Factorial (F!)
{
double result = 1;
while (x > 1)
{
result = result * x;
x = x - 1;
}
return result;
}

static Scanner scanner = new Scanner(System.in); // a Global Scanner.

public static void main(String[] args)
{
double numb1, numb2;
char operation;
System.out.println("Enter Your Equation: ");

// Split string by space
String[] parts = scanner.nextLine().split("");

// Convert to corresponding types
operation = parts[1].charAt(0);

switch (operation)
{
case '+':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + addition(numb1, numb2));
break;

case '-':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + subtraction(numb1, numb2));
break;
case '*':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + multiplication(numb1, numb2));
break;
case '/':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
numb2 = Integer.parseInt(parts[2]);
System.out.println("The Product is: " + division(numb1, numb2));
break;
case '!':
numb1 = Integer.parseInt(parts[0]);
operation = parts[1].charAt(0);
System.out.println("The Product is: " + factorial(numb1));
}
}

最佳答案

已经有一些简单的方法可以在 Java 中评估表达式,但假设这是出于学习目的:

解析数学方程式最棘手的部分是考虑运算顺序——也就是说,您不能只是遍历方程式并一点一点地计算它(比如 3 + 2 * 5 在这种情况下会失败)。

您正在寻找的是一种解析中缀表达式的方法;本节here关于该主题的内容会带您了解必须做的事情的基本概念。那里没有 Java 代码,但这会失去它的乐趣,对吧?

关于java - 在 Java 计算器中允许多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24709903/

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