Calculator.java обзор и мнения - PullRequest
       27

Calculator.java обзор и мнения

0 голосов
/ 17 ноября 2018

Вот программа на калькуляторе Java, которую я только что создал, но она не соответствует моим ожиданиям! Я хочу это более удобным способом, так как в нем 6 классов и несколько восклицательных знаков, я хочу получить +, поэтому, пожалуйста, помогите мне!

1) Можно ли зациклить коды, чтобы после отображения ответа снова запустил код? 2) Можно ли как-нибудь уменьшить количество классов и длину кодов? 3) Можно ли очистить экран в консоли, как в C ++, поэтому он должен отображать отдельное представление для вступления и ответа?

Вот код:

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);
             }
}

1 Ответ

0 голосов
/ 17 ноября 2018

Вы запрашиваете два числа с плавающей точкой в ​​каждом методе и используете одни и те же отпечатки много раз, поэтому вы можете просто создать какой-то метод, подобный этому, и вызвать его внутри вашего метода операции, чтобы прекратить повторять код (постоянно повторяющиеся блоки кода являются сильныминдикатор того, что блок, вероятно, можно абстрагировать в свой собственный метод):

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;
}

Вы также можете зациклить ваш main, поместив его в цикл while и добавив дополнительный регистр к вашему оператору 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;
    }
  }
}
...