我需要检查用户输入值是否不是int值.我已经尝试了我所知道的不同组合,但我得到的一切都没有或随机错误
例如:
如果用户输入"adfadf 1324",它将发出警告信息.
是)我有的:
// Initialize a Scanner to read input from the command line
Scanner sc = new Scanner(System.in);
int integer, smallest = 0, input;
boolean error = false;
System.out.print("Enter an integer between 1-100: ");
range = sc.nextInt();
if(!sc.hasNextInt()) {
error = true;
System.out.println("Invalid input!");
System.out.print("How many integers shall we compare? (Enter an integer between 1-100: ");
sc.next();
}
while(error) {
for(int ii = 1; ii <= integer; ii++) {
...
} // end for loop
}
System.out.println("The smallest number entered was: " + smallest);
}
}
Run Code Online (Sandbox Code Playgroud)
Pan*_*ool 17
如果输入无效,只需抛出异常
Scanner sc=new Scanner(System.in);
try
{
System.out.println("Please input an integer");
//nextInt will throw InputMismatchException
//if the next token does not match the Integer
//regular expression, or is out of range
int usrInput=sc.nextInt();
}
catch(InputMismatchException exception)
{
//Print "This is not an integer"
//when user put other than integer
System.out.println("This is not an integer");
}
Run Code Online (Sandbox Code Playgroud)
Try this one:
for (;;) {
if (!sc.hasNextInt()) {
System.out.println(" enter only integers!: ");
sc.next(); // discard
continue;
}
choose = sc.nextInt();
if (choose >= 0) {
System.out.print("no problem with input");
} else {
System.out.print("invalid inputs");
}
break;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
124571 次 |
最近记录: |