gpt4 book ai didi

java - 制作计算器的求解部分,pemdas序列

转载 作者:行者123 更新时间:2023-11-30 10:29:40 25 4
gpt4 key购买 nike

我正在尝试制作一个 GUI 计算器。到目前为止一切似乎都很好,但我怎样才能实现像内置 Windows 计算器那样的功能,当你操作时你会看到 ex。 “100+2+9*4/8-3” 这样每当你点击另一个 + -/* 按钮时它就会按顺序解决。彭达斯?我认为。我可以设法使计算器像那样运行,但它只会按顺序解决它,因为我只存储 2 个值,所以我想知道如何存储所有当前操作的值及其运算符 (+-/*)

最佳答案

so I was wondering how I can store values of all current operations and their operator(+-/*)

那么,您可以尝试将每个操作存储在 ArrayList 中,并将每个操作放在一个名为 Operation 的类中,该类具有 3 个变量 number1 , number2operation 可以是 enumString 值。我更喜欢枚举方法,但我把它留给你了。

所以,你可以有这个类:

import java.util.ArrayList;

public class PemdasSample {
public static void main(String args[]) {
ArrayList <Operation> operations = new ArrayList<Operation>();
operations.add(new Operation(5, 5, "SUM"));
operations.add(new Operation(2, 2, "REST"));
operations.add(new Operation(3, 4, "MULTIPLY"));

for (Operation operation : operations) {
switch (operation.getOperation()) {
case "SUM":
System.out.println(operation.getNumber1() + operation.getNumber2());
break;
case "REST":
System.out.println(operation.getNumber1() - operation.getNumber2());
break;
case "MULTIPLY":
System.out.println(operation.getNumber1() * operation.getNumber2());
break;
default:
System.out.println("Operation not found");
break;
}
}
}

static class Operation {
int number1;
int number2;
String operation;

public Operation(int number1, int number2, String operation) {
this.number1 = number1;
this.number2 = number2;
this.operation = operation;
}

public int getNumber1() {
return number1;
}

public void setNumber1(int number1) {
this.number1 = number1;
}

public int getNumber2() {
return number2;
}

public void setNumber2(int number2) {
this.number2 = number2;
}

public String getOperation() {
return operation;
}

public void setOperation(String operation) {
this.operation = operation;
}
}
}

产生这个输出:

10
0
12

你可以采用逻辑(并将 Operation 类分离到它自己的文件中,而不是像我那样作为内部类,不是静态的,等等)并修改你的程序.. .

您没有提供任何代码,因此,如果此方法对您不起作用,请解释原因并提供有效的 Minimal, Complete and Verifiable Example这证明了您的问题。

免责声明

由于 String 开关,此代码示例需要 Java 7 才能工作,请参阅 this answer获取更多信息。

我也没有将 PEMDAS 逻辑添加到程序中,因为 OP 没有提供任何代码,只是帮助了解如何存储操作。

关于java - 制作计算器的求解部分,pemdas序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43941164/

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