gpt4 book ai didi

java - 在 .nextDouble 中输入非数字时如何修复用户输入错误?

转载 作者:行者123 更新时间:2023-12-01 10:54:41 27 4
gpt4 key购买 nike

所以我将 Java 作为数学学位要求的一部分,并且偶然发现了这段代码的问题。本质上,代码应该从用户那里获取数字,直到他们输入零。只要输入数字就可以正常工作。但是,如果用户输入字母或符号,程序就会出现异常。有没有一种简单的方法可以将用户输入验证为数字而不会出现异常?

import java.util.Scanner;

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

double userInput = 1;
double sum = 0;

Scanner in = new Scanner (System.in);

while(userInput != 0)
{
System.out.println("Enter a number. (0 to quit):");
userInput = in.nextDouble();
sum = sum + userInput;
}

System.out.println("The sum of the numbers is " + sum + ".");
}
}

所以我已经尝试了你展示的 try/catch 。不过,我仍然遇到非数字的异常。输入代码如下:

while(userInput != 0)
{
System.out.println("Enter a number. (0 to quit):");
try{
userInput = in.nextDouble();
}
catch(NumberFormatException nfe){
System.out.println("Invalid Number");
}
sum = sum + userInput;
}

最佳答案

导入java.util.InputMismatchException;

导入java.util.Scanner;

公共(public)类 SamsAdder {

public static void main(String[] args) {

double userInput = 1;
double sum = 0;

Scanner in = new Scanner(System.in);

while (userInput != 0) {

try {

System.out.println("Enter a number. (0 to quit):");
userInput = in.nextDouble();

sum = sum + userInput;
} catch (InputMismatchException nfe) {
System.out.println("Invalid Number");
in.next();
}

}
in.close();
System.out.println("The sum of the numbers is " + sum + ".");
}

}

关于java - 在 .nextDouble 中输入非数字时如何修复用户输入错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684262/

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