首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Calculator.java评论与意见

Calculator.java评论与意见
EN

Stack Overflow用户
提问于 2018-11-17 07:28:45
回答 1查看 121关注 0票数 0

这是我最近开发的Java计算器程序,但它不符合我的期望!我想要一个更方便的方式,就像它有6个类和一些感叹号,我想得到A+,所以请帮助我!

1)我能循环这些代码吗?在显示答案之后,它会再次运行代码吗? 2)我能以某种方式减少类的数量和代码的长度吗? 3)是否可以像C++一样清除控制台中的屏幕,所以它应该为Intro和答案显示一个单独的视图?

,这是代码:

代码语言:javascript
复制
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);
             }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-17 07:38:54

您在每个方法中请求两个浮动,并且多次使用相同的打印,因此您只需创建一些类似的方法,并在操作方法中调用它来停止重复代码(不断重复的代码块是一个强有力的指示,表明该块可能被抽象到它自己的方法中):

代码语言:javascript
复制
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):

代码语言:javascript
复制
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;
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53349168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档