使用以下方法:
public void localsetValue(String UserInput)
{
System.out.println("Enter New Value:");
while (!console.hasNextInt()){
console.next();
System.out.println("Must be a number.");
}
tempInt = console.nextInt();
console.nextLine();
while (tempInt <0) {
System.out.println("Value must be positive.");
tempInt = console.nextInt();
}
SetSpecificValue(UserInput.toLowerCase(), tempInt);
}
第一个while循环检查用户是否输入了有效的int;这很好。
第二个while循环检查用户输入正数;这也有效,但此时他们可以输入一个字母,它会抛出异常。
还是Java的新手,有没有办法将这两个检查结合起来?
答案 0 :(得分:3)
只需使用相同的while
循环就可以了。
此处,如果用户输入int
以外的其他内容,或者输入的int
为否定,我们会继续循环播放。
int tmpInt = 0;
boolean flag = false;
while ((flag = !console.hasNextInt()) || (tmpInt = console.nextInt()) < 0){
if (flag) {
console.next();
flag = false;
}
System.out.println("Value must be a positive integer !");
}
答案 1 :(得分:1)
你只需要一个循环,但必须结合两个中止条件(是一个数字,是正数)。
int value = -1
do {
if(console.hasNextInt()){
value = console.nextInt();
} else {
console.next();
}
} while(value < 0)
答案 2 :(得分:0)
这样的东西?
public void localsetValue(String UserInput)
{
tempInt = -1;
System.out.println("Enter New Value:");
while (!console.hasNextInt() || (tempInt = console.nextInt()) <0){
console.next();
System.out.println("Must be a positive number.");
}
console.nextLine();
SetSpecificValue(UserInput.toLowerCase(), tempInt);
}