我有办法重新输入错误的输入吗?

时间:2019-06-16 13:53:42

标签: java

我正在制作一个基本的计算器,在其中进行加法,乘法等。它首先检查运算类型,例如,1用于加法运算,2用于乘法运算等等。如果它检测到操作类型输入无效,则仅在控制台中告诉我一个错误。有什么方法可以用来检测方法,然后重新输入?

public void printCheck() throws ArithmeticException{

        if (op == 2) {
            System.out.println("You have chosen addition");
        }

        else if (op == 3) {
            System.out.println("You have chosen subtraction");
        }

        else if (op == 4) {
            System.out.println("You have chosen multiplication");
        }

        else if (op == 5) {
            System.out.println("You have chosen division");
        }

        else {
            throw new ArithmeticException("Entered an invalid operation"); 
        }

            try {
                a.op(0);
            }

            catch(ArithmeticException e){
                System.out.println("You have entered an invalid operation");
            }

2 个答案:

答案 0 :(得分:2)

您可以重复输入操作码,直到输入有效为止。

我不建议在这里使用异常,因为这是用户输入无效输入的一种常见且众所周知的情况。相反,您应该创建一个简单的方法isValidOperationCode来检查输入。为了提高可读性,我删除了全局变量op并将其转换为局部变量,该局部变量作为参数传递给需要它的方法。

示例:

int op;
do {
    op = askUserForOperation();
    printCheckOperation(op);
} while (!isValidOperationCode(op));

使用经过修改的printCheckOperation方法

    ...
} else if (op == 5) {
    System.out.println("You have chosen division");
} else {
    System.out.println("Entered an invalid operation"); 
}

和新方法

private boolean isValidOperationCode(int op) {
    return 2 <= op && op <= 5;
}

答案 1 :(得分:0)

对不起,因为我正在使用手机回答这个问题,所以我不敢说了。我希望这个答案有帮助。

  public void printCheck(){
    while(true){
     if(op<2 || op>5){
           enterNewOp();
     }
     else {
            switch(op) {
                  case 2:
                  System.out.println("You have select addition");
                  case 3:
                  System...
                  case 4:
                   ......
            }
     break;
     }
    }
   }