我试图确保用户只输入int类型,并确保输入的整数大于0
。
我能够提出以下内容以确保输入是int类型:
Scanner scan = new Scanner(System.in);
while(!scanner.hasNextInt())
{
scanner.next();
}
int input = scan.nextInt();
但是我应该如何包含条件检查以确保整数大于0?
答案 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(如果是数字)