多个扫描仪输入:当前选择块的迭代验证
Multiple Scanner Inputs: Iterative validation of current selection blocks
我试图在单个 while 循环中使用成对的 If-Else
块验证多个扫描器输入。我有兴趣实现的行为是当前验证 If-Statement
请求用户重新输入或继续进行后续输入/选择块。
现在,我在 While 循环的开头使用 continue
关键字,returns。使用 do...while
循环会更适合这个吗?谢谢。
while (count < numCars) {
System.out.println("Enter car type");
String name = scanner.next();
if (name.matches(".*\d")) {
System.out.println("Name entry cannot contain numbers");
continue;
} else {
// re-enter name
}
System.out.println("Enter max speed");
int maxSpeed = scanner.nextInt();
if (maxSpeed == 100 || maxSpeed > 100) {
System.out.println("Max speed is not valid. Please re-enter");
continue;
} else {
// re-enter age
count++;
}
}
您想要的每个块的功能都可以使用 while
而不是 if-else
语句来实现。我还以 nicer/more 有条理的方式构建了您的代码:
int count = 0, numCars = 3; // Example value
String name;
int maxSpeed;
while (count < numCars) {
System.out.print("Enter car type: ");
name = scanner.next();
scanner.nextLine(); // Cleans the buffer
while (name.matches(".*\d")) {
System.out.println("Name entry cannot contain numbers.");
System.out.print("Enter car type: ");
name = scanner.next();
scanner.nextLine(); // Cleans the buffer
}
System.out.print("Enter max speed: ");
maxSpeed = scanner.nextInt();
while (maxSpeed >= 100) {
System.out.println("Max speed is not valid. Please re-enter.");
System.out.print("Enter max speed: ");
maxSpeed = scanner.nextInt();
}
count++;
}
我试图在单个 while 循环中使用成对的 If-Else
块验证多个扫描器输入。我有兴趣实现的行为是当前验证 If-Statement
请求用户重新输入或继续进行后续输入/选择块。
现在,我在 While 循环的开头使用 continue
关键字,returns。使用 do...while
循环会更适合这个吗?谢谢。
while (count < numCars) {
System.out.println("Enter car type");
String name = scanner.next();
if (name.matches(".*\d")) {
System.out.println("Name entry cannot contain numbers");
continue;
} else {
// re-enter name
}
System.out.println("Enter max speed");
int maxSpeed = scanner.nextInt();
if (maxSpeed == 100 || maxSpeed > 100) {
System.out.println("Max speed is not valid. Please re-enter");
continue;
} else {
// re-enter age
count++;
}
}
您想要的每个块的功能都可以使用 while
而不是 if-else
语句来实现。我还以 nicer/more 有条理的方式构建了您的代码:
int count = 0, numCars = 3; // Example value
String name;
int maxSpeed;
while (count < numCars) {
System.out.print("Enter car type: ");
name = scanner.next();
scanner.nextLine(); // Cleans the buffer
while (name.matches(".*\d")) {
System.out.println("Name entry cannot contain numbers.");
System.out.print("Enter car type: ");
name = scanner.next();
scanner.nextLine(); // Cleans the buffer
}
System.out.print("Enter max speed: ");
maxSpeed = scanner.nextInt();
while (maxSpeed >= 100) {
System.out.println("Max speed is not valid. Please re-enter.");
System.out.print("Enter max speed: ");
maxSpeed = scanner.nextInt();
}
count++;
}