gpt4 book ai didi

java - 简单的 Calc 用户输入,我需要将其分解为不同的类 Java eclipse

转载 作者:行者123 更新时间:2023-12-01 04:20:06 25 4
gpt4 key购买 nike

所以我得到了一个有效的计算器,它有+,-,/,*并且在询问用户是否要继续后它关闭了,这里的事情是我试图将它分解为不同的类,所以我得到了一个主类应用程序,仅向用户询问获得运算符(operator)代码等的内容和类但我真的不知道该怎么做,我尝试过制作不同的类(class)并将每个类(class)放在一个单独的类(class)中,但没有成功,你们中有人可以帮忙吗?

这是我的 ATM 代码

package com.example.main;

import java.util.Scanner;

public class Main{
public static void main(String[] args) {


boolean status = true;
while (status){

Scanner minScanner = new Scanner(System.in);
System.out.println("Skriv in ditt nummer en och en :\n");
double nr1 = Double.parseDouble(minScanner.nextLine());
double nr2 = Double.parseDouble(minScanner.nextLine());

System.out.println("välj vad du vill göra: ");

double svar = 0;

String användarInlägg = minScanner.nextLine();

if (användarInlägg.equalsIgnoreCase("+"))
{
svar = nr1 + nr2;
} else if (användarInlägg.equalsIgnoreCase("-"))
{
svar = nr1 - nr2;
} else if (användarInlägg.equalsIgnoreCase("*"))
{
svar = nr1 * nr2;
} else if (användarInlägg.equalsIgnoreCase("/"))
{
svar = nr1 / nr2;
}
System.out.printf("= %.2f\n ", svar);
System.out.println("Skriv in J för att fortsätta N för att sluta: \n");


String input = minScanner.nextLine();

if (input.equalsIgnoreCase("N"))
status = false;
else if (input.equalsIgnoreCase("J")) {
status = true;
}
}

}

}

最佳答案

你所拥有的是一个非常原始的计算器,因为它只支持像 2 3 + 这样的表达式。
如果您不想计算更复杂的表达式,可以使用 excellent blog post about pratt parsers它已经完成了大部分工作。添加评价真的很容易。这形成了一个可扩展的、结构良好且健壮的解析器。添加函数、条件和三元运算符 ?: 也很简单。

我让它在短短 54 纳秒内计算出像 (2.4 + -5)/(2.4 - -5) * 100/(2.4 * -5) 这样的表达式,并且当编译为字节码时(在运行时)只需 5 纳秒!

关于java - 简单的 Calc 用户输入,我需要将其分解为不同的类 Java eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19021589/

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