当用户输入错误的字符或无效的输入数据时,如何显示“打印”错误?

我想知道是否有一种简单的方法来显示错误字符或无效输入数据的错误。

public static void main(String[] args) {

    // Step 1: Create new Scanner object.
    Scanner input = new Scanner(System.in);         

    // Step 2: Prompt the user to enter today's day.
    System.out.print("Enter today’s day as an Integer (0-6): ");
    int Today = input.nextInt();

    // Step 3: Prompt the user to enter the number of days elapsed since today.
    System.out.print("Enter the number of days elapsed since today as an Integer: ");
    int DaysElapsed= input.nextInt();

    // Step 4: Compute the future day.
    int FutureDay = (Today + DaysElapsed) % 7;

    // Step 5: Printing the results.
        // Step 5.1: Today's day result depending the case.
        System.out.print("Today is ");
            // Step 5.2: Future day result depending the case.
        System.out.print(" and the future day is ");


猛跑小猪
浏览 676回答 2
2回答

慕妹3146593

因为你只是期待'int'来自scanner.nextInt()它会抛出InputMismatchException异常。所以你可以int像这样轻松验证你的输入-try&nbsp;{ &nbsp;&nbsp;&nbsp;int&nbsp;Today&nbsp;=&nbsp;input.nextInt(); &nbsp;&nbsp;&nbsp;int&nbsp;DaysElapsed=&nbsp;input.nextInt();}&nbsp;catch&nbsp;(InputMismatchException){ &nbsp;&nbsp;&nbsp;System.err.println("Input&nbsp;is&nbsp;not&nbsp;an&nbsp;integer");}Scanner.nextInt()也抛出NoSuchElementException和IllegalStateException异常此外,您可以通过使用条件(today>=1 && today=<31)验证输入日期是否有效

牛魔王的故事

使用nextInt(),您已经将允许的值过滤为整数。但是,如果您希望用户输入有限范围内的值,您可以使用以下内容:&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;Today&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(input.hasNextInt())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(input.nextInt()&nbsp;<&nbsp;32&nbsp;&&&nbsp;input.nextInt()&nbsp;>&nbsp;0)&nbsp;{&nbsp;//should&nbsp;be&nbsp;between&nbsp;0-32 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Today&nbsp;=&nbsp;input.nextInt(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;Exception("Number&nbsp;must&nbsp;be&nbsp;between&nbsp;0-32"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}编辑:如果您想继续出错:&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;Today&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;if(input.hasNextInt())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Today&nbsp;=&nbsp;input.nextInt(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(!(Today&nbsp;>&nbsp;0&nbsp;&&&nbsp;Today&nbsp;<&nbsp;32)){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("Number&nbsp;must&nbsp;be&nbsp;between&nbsp;0-32"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Today&nbsp;=&nbsp;input.nextInt(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java