这是我最近开发的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);
}
}发布于 2018-11-17 07:38:54
您在每个方法中请求两个浮动,并且多次使用相同的打印,因此您只需创建一些类似的方法,并在操作方法中调用它来停止重复代码(不断重复的代码块是一个强有力的指示,表明该块可能被抽象到它自己的方法中):
public static float[] getValues(){
float[] values;
/*Implement your logic here asking user for floats, then put into above array
and do calculations in your methods using float array*/
return values;
}您还可以循环您的主程序,方法是将其封装在switch循环中,并向开关语句中添加一个额外的大小写,如下所示(如果您想退出程序,请输入5):
public static void main(String[] args) {
welcome();
while (true){
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("5) Quit");
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;
case 5: System.exit(0);
default: System.out.println("\n(Invalid Argument)");
return;
}
}
}https://stackoverflow.com/questions/53349168
复制相似问题