有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在输入非数字时修复用户输入错误。下一个双倍?

因此,我将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;
        }

共 (1) 个答案

  1. # 1 楼答案

    导入java。util。输入不匹配异常

    导入java。util。扫描仪

    公共类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 + ".");
    }
    

    }