如何确保用户仅输入整数类型和大于0的整数?

时间:2014-09-08 00:03:36

标签: java algorithm integer

我试图确保用户只输入int类型,并确保输入的整数大于0

我能够提出以下内容以确保输入是int类型:

Scanner scan = new Scanner(System.in);
while(!scanner.hasNextInt()) 
{
    scanner.next();
}
int input = scan.nextInt();

但是我应该如何包含条件检查以确保整数大于0?

4 个答案:

答案 0 :(得分:2)

您当前的方法存在的问题是,您已经准备好了Scanner之前达到int input = scan.nextInt();的价值,这意味着当您使用nextInt时,其中没有任何内容要读取Scanner,它将等待用户的下一个输入...

相反,您可以使用String阅读Scanner中的next,使用Integer.parseInt尝试将结果解析为int,然后检查结果,例如......

Scanner scanner = new Scanner(System.in);
int intValue = -1;
do {
    System.out.print("Please enter a integer value greater than 0: ");
    String next = scanner.next();
    try {
        intValue = Integer.parseInt(next);
    } catch (NumberFormatException exp) {
    }
} while (intValue < 0);

System.out.println("You input " + intValue);

答案 1 :(得分:0)

在你的while循环中添加if语句,如下所示

if(num <= 0){
   System.out.println("Enter a number greater than zero");
}
else{
   break;
}

答案 2 :(得分:0)

您可以在代码中使用条件,但不能在循环中使用。 `

Scanner scan = new Scanner(System.in);
abc: 
while(!scanner.hasNextInt()) 
{
    scanner.next();
}
int input = scan.nextInt();
if(input <= 0){
   goto abc;
}

`

答案 3 :(得分:-1)

使用.isDigit()方法,然后检查该数字是否大于0(如果是数字)