java - 如何使用if语句检查用户输入是否是某种变量类型?

标签 java if-statement double user-input

我正在创建一个数学程序,用户在其中输入答案。我想显示一条消息“所有解决方案必须以十进制数字形式输入”。我如何确保用户输入 double ,如果不显示该消息。到目前为止我已经尝试过:

if(userLetter.equalsIgnoreCase("a")) {
    System.out.print("What is the solution to the problem:" + " " + ran1Shift + " " + "+" + " " + ran2Shift + " = ");
    double userNum = input.nextDouble();
        if(userNum == additionAnswer){
            System.out.println("That's correct!");
        }
        else{
            System.out.println("The correct solution is: " + additionAnswer);
        }
    }

所以基本上我现在将其设置为显示答案是否完全正确或错误,但是如果用户输入非 double ,我如何制作另一个部分来捕获?谢谢您的帮助:)

最佳答案

假设input是一个Scanner,那么你可以调用Scanner.hasNextDouble()如果此扫描仪输入中的下一个标记可以使用 nextDouble() 解释为 double 值,则返回 true方法。类似,

if (input.hasNextDouble()) {
    double userNum = input.nextDouble();
    if (userNum == additionAnswer) {
        System.out.println("That's correct!");
    } else {
        System.out.println("The correct solution is: " + additionAnswer);
    }
} else {
    System.out.println("All solutions must be entered as decimal numbers");
}

关于java - 如何使用if语句检查用户输入是否是某种变量类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35107238/

相关文章:

java - 忽略 AsyncClientHttp2Multiplexing 中的自签名证书

java - 如何向日期添加数字

JAVA - 将 Double 值与 Float.MIN_VALUE 或 Integer.MIN_VALUE 进行比较

c - 单精度 float 在零附近时的近似分辨率是多少

C++ 变量零校正

java - 使用堆栈的算术计算器(错误)

java - Android连接Mysql数据库

java - 错误 : syntax error at or near "." in copy command using java?

string - 如何将 $var 的内容与 Fish shell 中的已知字符串进行比较

c# - 有效使用正则表达式处理文件名的好方法是什么?