java - 当用户输入任何不是双精度的内容时如何打印错误消息?
问题描述
我正在尝试创建一个从用户读取双精度值的 Java 程序,打印这两个数字之间的差异,以便差异始终为正。如果输入的不是数字,我需要显示错误消息。请帮忙,谢谢!!
当我运行程序并输入第二个双精度值时,什么也没有发生。我也尝试添加 try 和 catch 但我收到错误说 num1 无法解析为变量:(
import java.util.Scanner;
public class Positive {
public static void main(String[] args) {
//Reads input
Scanner sc = new Scanner(System.in);
System.out.println ("Please enter a double vaule: ");
double num1 = Math.abs(sc.nextDouble());
System.out.println("Please enter a second double vaule: " );
double num2 = Math.abs(sc.nextDouble());
double total = 0;
double total2 = 0;
if (sc.hasNextDouble()) {
num1 = sc.nextDouble();
if (num1>num2) {
total = ((num1 - num2));
System.out.println("The difference is " + total);
}
if ((num1 < num2)); {
total2 = ((num2 - num1));
System.out.println("The difference is "+ total2);
}
}else {
System.out.println("Wrong vaule entered");
}
}
}
解决方案
你有正确的想法。您只需要删除;
最后一个分号 ( )if
并正确嵌套您的条件:
if (sc.hasNextDouble()) {
num1 = sc.nextDouble();
if (num1 > num2) {
total = (num1 - num2);
System.out.println("The difference is " + total);
}
else if (num1 < num2) {
total2 = (num2 - num1);
System.out.println("The difference is "+ total2);
}
} else {
System.out.println("Wrong vaule entered");
}
推荐阅读
- javascript - 如何找到以任何格式编写的对象键?
- python - 将 boost 1.65.1 python 降级到 1.63.1 或卸载并重建
- skype - 在 Skype 中集成的对话流聊天机器人中发起聊天?
- java - 广度优先搜索 - 空指针异常
- angular - 在 IE 11 中打印 PDF 报告
- android - 如何使 CardView 中的 ConstraintLayout 中的两个文本视图齐平?
- sql-server-2017 - SQL 查询以提取以特定 3 位数字开头的行
- python - 脚本编程:使用参数在单独的文件中开发函数
- package - 用于 Clang/LLVM 的 C++ 库包管理器
- php - Laravel 5.5 搜索多个实体