【发布时间】:2018-11-17 15:52:53
【问题描述】:
这是我最近制作的一个 Java 计算器程序,但它不符合我的期望!我想要一个更方便的方式,比如它有 6 个类和一些感叹号,我想要 A+ 所以请帮帮我!
1)我可以循环代码以便在显示答案后再次运行代码吗? 2) 我能以某种方式减少类的数量和代码的长度吗? 3) 我可以像在 C++ 中一样在控制台中清除屏幕,因此它应该为 Intro 和答案显示单独的视图吗?
代码如下:
import java.util.Scanner;
public class javaCalc {
public static void welcome() {
System.out.println("Welcome to Calculator.java v0.1");
System.out.println("(Developed By RAZ0229)");
}
public static void main(String[] args) {
welcome();
System.out.flush();
System.out.println("\n1) Addition");
System.out.println("2) Substraction");
System.out.println("3) Multiplication");
System.out.println("4) Division");
System.out.println("\nChoose A Basic Operator:");
Scanner operandOne = new Scanner(System.in);
int inpOperation = operandOne.nextInt();
switch(inpOperation) {
case 1: additionMethod();
break;
case 2: substractionMethod();
break;
case 3: multiplicationMethod();
break;
case 4: divisionMethod();
break;
default: System.out.println("\n(Invalid Argument)");
return;
}
}
public static void additionMethod() {
Scanner operandOne = new Scanner(System.in);
System.out.println("Enter The First Quantity:");
float numOne = operandOne.nextFloat();
System.out.println("Enter The Second Quantity:");
float numTwo = operandOne.nextFloat();
float answer = numOne + numTwo;
System.out.println(numOne + " + " + numTwo + " = " + answer);
}
public static void substractionMethod() {
Scanner operandOne = new Scanner(System.in);
System.out.println("Enter The First Quantity:");
float numOne = operandOne.nextFloat();
System.out.println("Enter The Second Quantity:");
float numTwo = operandOne.nextFloat();
float answer = numOne - numTwo;
System.out.println(numOne + " - " + numTwo + " = " + answer);
}
public static void multiplicationMethod() {
Scanner operandOne = new Scanner(System.in);
System.out.println("Enter The First Quantity:");
float numOne = operandOne.nextFloat();
System.out.println("Enter The Second Quantity:");
float numTwo = operandOne.nextFloat();
float answer = numOne * numTwo;
System.out.println(numOne + " x " + numTwo + " = " + answer);
}
public static void divisionMethod() {
Scanner operandOne = new Scanner(System.in);
System.out.println("Enter The First Quantity:");
float numOne = operandOne.nextFloat();
System.out.println("Enter The Second Quantity:");
float numTwo = operandOne.nextFloat();
float answer = numOne / numTwo;
System.out.println(numOne + " / " + numTwo + " = " + answer);
}
}
【问题讨论】:
-
首先,我立即注意到您的 operatorMethod() 都包含重复的代码。考虑重构所有这些代码。
-
另外,你在这里只展示了一个类。你的意思是方法,也许?此外,您可以尽可能多次地运行此代码。您需要将功能抽象化为方法调用,并在需要时在 main 中调用此方法。
-
查看工作代码与 Stack Overflow 无关,问题属于 Code Review
-
您应该处理用户的无效输入以使其反弹。并将以下代码保存在单独的方法中,您将只获取和验证用户输入。 ScanneroperandOne = new Scanner(System.in); System.out.println("输入第一个数量:"); float numOne =operandOne.nextFloat(); System.out.println("输入第二个数量:"); float numTwo =operandOne.nextFloat();
标签: java eclipse class calculator cls