Java 验证基本计算器程序中的输入

标签 java arrays string calculator do-while

我正在寻找如何使我的程序正确运行的答案。我希望我的程序能够识别 double 以外的东西——例如,如果我放入 idk ,它会说,这不是一个数字而不是崩溃。

我的代码:

import java.util.*;

public class CalculatorMain {
    public static void main(String[] args) {

        FunctionMain action = new FunctionMain();

         Scanner input = new Scanner(System.in);

        double answer = 0;
        double inputNu1, inputNu2;
        char operator;
        boolean end = false;

     while (! end ) {
            System.out.print(">>>");

            inputNu1 = input.nextDouble();
            operator = input.next().charAt(0);
            inputNu2 = input.nextDouble();        

    switch (operator) 
            {
        case '-': answer = action.Subtract(inputNu1, inputNu2);
                break;
        case '*': answer = action.Multiply(inputNu1, inputNu2);
                break;
        case '+': answer = action.Add(inputNu1, inputNu2);
                break; 
        case '/': answer = action.Divide(inputNu1, inputNu2);
               break;          
            }

        System.out.println(answer);             
        }       
        input.close();

    }

}



public class FunctionMain {

     double Subtract (double Nu1 , double Nu2)
    {
         return Nu1 + Nu2;

    }
    double Multiply (double Nu1 , double Nu2)
    {
        return Nu1 * Nu2;
    }
    double Add (double Nu1 , double Nu2)

    {
        return Nu1  + Nu2;
    }
    double Divide (double Nu1 , double Nu2)

    {  
        return Nu1 / Nu2;
    }

}

最佳答案

当您尝试将 String 转换为 Double 时,您会遇到异常,因此您必须按如下方式进行管理:

double n = 0.0;
try {
    n = input.nextDouble();
} catch (Exception e) {
    // there was an error, and here we can do whatever
    System.out.println( "It was not a number!" );
}

了解有关异常(exception)的更多信息:http://docs.oracle.com/javase/tutorial/essential/exceptions/

关于Java 验证基本计算器程序中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26470914/

相关文章:

java - Android ListView 持久化背景

c - 删除二叉堆中的最顶层元素

c++ - 使用 strtok() 解析字符串

string - 如何在 Haskell 中分割字符串?

java - java swing 文档中 Position 实例的处理

java - 检查机器人的给定移动序列是否在 Java 中是圆形的

arrays - Swift 无法在元组数组中插入 int 值

C#计算解析器

java - 比较java中的int

arrays - useState setter 方法不更新数组