简单的Calc用户输入,我需要将其分解为不同的Java eclipse类
所以我得到了一个有效的计算,它得到了+,-,/,*并且在询问用户是否想继续后关闭,这里的事情是我试图将它分解为不同的类,所以我得到了一个主类应用程序,它只要求用户提供一些东西和类,这些类得到了操作符的代码等等 但我真的不知道该怎么做,我试着做了不同的课程,把每一门课都放在一个单独的课堂上,但没有效果,你们有谁能帮忙吗 这是我的自动取款机代码简单的Calc用户输入,我需要将其分解为不同的Java eclipse类,java,eclipse,class,calculator,Java,Eclipse,Class,Calculator,所以我得到了一个有效的计算,它得到了+,-,/,*并且在询问用户是否想继续后关闭,这里的事情是我试图将它分解为不同的类,所以我得到了一个主类应用程序,它只要求用户提供一些东西和类,这些类得到了操作符的代码等等 但我真的不知道该怎么做,我试着做了不同的课程,把每一门课都放在一个单独的课堂上,但没有效果,你们有谁能帮忙吗 这是我的自动取款机代码 package com.example.main; import java.util.Scanner; public class Main{ publ
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;
}
}
}
}
这里有一个非常原始的计算器,因为它只支持像23+这样的表达式。 如果您不想计算更复杂的表达式,则有一个已完成大部分工作的。向其中添加评估非常容易。这就形成了一个可扩展的、结构良好且健壮的解析器。添加函数、条件和三元运算符也很简单 我让它在54纳秒的时间内对2.4+-5/2.4--5*100/2.4*-5这样的表达式求值,在运行时编译成字节码只需5纳秒
interface MathOp {
public double doMath(double a, double b);
}
class Add implements MathOp{
public double doMath(double a, double b) {
return (a + b);
}
}
class Sub implements MathOp{
public double doMath(double a, double b) {
return (a - b);
}
}
// do the same for multiplication and divison
在课堂上使用main方法
class SimpleCalc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a,b,c;
int choice = 0;
a=b=c=0.0;
while(true) {
System.out.println("Enter two numbers");
a = Double.parseDouble(sc.nextLine());
b = Double.parseDouble(sc.nextLine());
System.out.println("Enter your choice");
System.out.println("1. Add");
System.out.println("2. Sub");
System.out.println("3. Mul");
System.out.println("4. Div");
choice = Integer.parseInt(sc.nextLine());
switch(choice) {
case 1 :
c = new Add().mathOp(a,b);
break;
case 2 :
c = new Sub().mathOp(a,b);
break;
// do the same for the other classes and use a default case.
}
//print the results here and then ask the user's choice
System.out.println("would you like to continue? (Y/N)");
if("N".equalsIgnoreCase(sc.nextLine())) { // careful with the paranthesis
break;
}
}
}
}
请不要无礼,我不太擅长这一点,只是想知道我的问题是否愚蠢然后键入为什么不只是像omg这样的回答你很愚蠢你说你试图将代码放在不同的类中,你能发布那些课程吗,这样我们就可以看到什么不起作用了?谢谢我看了它看起来不错,但现在只是尝试使用简单的计算和课程:非常感谢我的帮助,我让它与dup和division一起工作,我还将尝试添加一些其他内容,但这对我很有帮助,非常感谢展示这一点, bow@user2764700标出一个曾经解决过你的问题的答案