Java 如何检查userInput是否为int

Java 如何检查userInput是否为int,java,Java,如果最大值不是整数,我将尝试输出“无效值”。每当我运行这段代码时,我的总体输出都会发生变化。我想知道如何正确地做到这一点 import java.util.*; public class ForLoopPractice { public static void main(String[]args) { Scanner scnr = new Scanner(System.in); final int MAX_VALUE; System.ou

如果最大值不是整数,我将尝试输出“无效值”。每当我运行这段代码时,我的总体输出都会发生变化。我想知道如何正确地做到这一点

import java.util.*;

public class ForLoopPractice {
    public static void main(String[]args) {
        Scanner scnr = new Scanner(System.in);
        final int MAX_VALUE;
        System.out.println("Print even values");
        System.out.print("Max value: ");
        MAX_VALUE = scnr.nextInt();
        
        for (int i=0; i < MAX_VALUE; i++) {
            if (i % 2 == 0) {
                System.out.println(i + " ");
            
            }
        }
        while (!scnr.hasNextInt()) {
            System.out.println("Invalid value");
            scnr.next();
        }
        System.out.println();
        System.out.println("Print a range of values");
        System.out.print("First Value: ");
        int firstVal = scnr.nextInt();
        
        System.out.print("Last Value: ");
        int secondVal = scnr.nextInt();
        
        for (int i = firstVal; i >= secondVal; i--) {
            System.out.println(i+ " ");
        
        }
        for (int i = firstVal; i <= secondVal; i++) {
            System.out.println(i+ " ");
        
        }
        
    }
}
import java.util.*;
公共实践课{
公共静态void main(字符串[]args){
扫描仪scnr=新扫描仪(System.in);
最终int最大值;
System.out.println(“打印偶数值”);
系统输出打印(“最大值:”);
最大值=序号nextInt();
对于(int i=0;i=secondVal;i--){
System.out.println(i+“”);
}

对于(int i=firstVal;i,在获取输入时,可以通过isDigit()方法进行检查。 如果N是用户给定的输入,请按System.out.print(Character.isDigit('N')检查它;
该方法将提供布尔值。

在获取输入时,您可以使用isDigit()方法进行检查。 如果N是用户给定的输入,请按System.out.print(Character.isDigit('N')检查它; 该方法将提供布尔值。

您可以将“MAX_value=scnr.nextInt();”包装为:

如果下一个值可以解释为整数,则返回true。

您可以将“MAX_value=scnr.nextInt();”换行为:


如果下一个值可以解释为整数,它将返回true。

使用Try-Catch块。
Scanner.nextInt()
如果输入不是数字,则抛出
InputMismatchException

您可以使用一个函数来确保程序在用户选择正确的输入之前不会继续运行

public static int getValidNumber(){
  try{
     Scanner sc = new Scanner(System.in);
     System.out.println("Enter a number: ");
     int num;
     num = sc.nextInt();
     return num;
  } catch (InputMismatchException ex){
    System.out.println("Invalid Input.");
    return getValidNumber();
  }
}

使用Try-Catch块。
Scanner.nextInt()
如果输入不是数字,则抛出
inputmaschException

您可以使用一个函数来确保程序在用户选择正确的输入之前不会继续运行

public static int getValidNumber(){
  try{
     Scanner sc = new Scanner(System.in);
     System.out.println("Enter a number: ");
     int num;
     num = sc.nextInt();
     return num;
  } catch (InputMismatchException ex){
    System.out.println("Invalid Input.");
    return getValidNumber();
  }
}

我在这里看不到任何输入验证…您能详细说明您正试图实现什么,以及您会遇到什么错误吗?
Scanner.nextInt()
抛出
InputMismatchException
如果下一个用户输入不是错误详细信息中的有效integerAside,正如@Mureinik所建议的,请编辑您的问题,同时指出您存在问题的确切位置。您在多个地方阅读输入,不清楚您的具体问题在哪里正在发生。由于如果输入不是整数,扫描程序将引发异常,因此我建议使用try-catch来定位此错误,并在发生此错误时执行某些操作。我在此处未看到任何输入验证…您能否详细说明您正试图实现的目标以及您将遇到的错误?
scanner.nextInt()
抛出
InputMismatchException
如果下一个用户输入不是错误详细信息中的有效integerAside,正如@Mureinik所建议的,请编辑您的问题,同时指出您存在问题的确切位置。您在多个地方阅读输入,不清楚您的具体问题在哪里由于如果输入不是整数,扫描程序将抛出异常,因此我建议使用try-catch来定位此错误,并在出现这种情况时执行一些操作。