gpt4 book ai didi

java - 实现 try 和 catch block

转载 作者:行者123 更新时间:2023-12-01 23:30:55 26 4
gpt4 key购买 nike

我终于(几乎)完成了我一直在做的一个小计算器项目。目前,它可以处理 double 的加法、减法、乘法、除法、取模、平方和求反,并响应一些字符串,例如“exit”、“clear”和“help”。

我只需要帮助实现一个 try 和 catch block ,以便在控制台显示“输入第一个数字”或“输入第二个数字”后,每当用户输入任何不是数字的内容时,在控制台中返回一条消息,例如“无效输入” ”。

我尝试了几种不同的方法,但似乎没有任何效果。非常感谢您的建议。代码:

import java.util.Scanner;


public class exit {

static double num1;
static double num2;
static String operation;

public static void main(String[] args) {

boolean run = true;

while (run) {

System.out.println(" Enter: \n \b help for all usable operations \n continue to use the calculator");
Scanner input = new Scanner(System.in);
String str1 = input.next();

if (str1.equals("exit")) {

System.exit(0);
} else if (str1.equals("clear")) {

System.out.println("0.0");
} else if (str1.equals("help")) {
System.out.println("please enter:\n + for addition \n - for subtraction \n * for multiplication \n / for division \n -x for negation \n x^2 for squaring\n % for mod \n remember to only input integer or double values\n");

} else if (str1.equals("continue")) {

System.out.println("\nEnter the first number:");
num1 = input.nextInt();


System.out.println
("Display:" + num1);

System.out.println("Please enter operation:");
operation = input.next();


System.out.println("Enter the second number:");
num2 = input.nextInt();
System.out.println("Display:" + num2);


if ("+".equals(operation)) {

System.out.println((num1 + num2));
} else if ("-".equals(operation)) {

System.out.println((num1 - num2));
} else if ("/".equals(operation)) {

System.out.println((num1 / num2));
} else if ("*".equals(operation)) {

System.out.println((num1 * num2));
} else if ("-x".equals(operation)) {

System.out.println(-num1);
} else if ("x^2".equals(operation)) {

System.out.println(num1 * num1);
} else if ("sqrt".equals(operation)) {

System.out.println(Math.sqrt(num1));

}


}

}
}
}

最佳答案

要通过实现 try-catch 检查数字的有效性,您可以尝试执行以下操作:

try{
Double num = Double.parseDouble(input.nextLine()); // This is just a sample
// int someInt = Integer.parseInt(someBasString); // Even this will throw NFE
}catch(NumberFormatException NFE){ // If its not a valid number, you'll get this exception
// Do something on error
}

关于java - 实现 try 和 catch block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com