我有一个 for 循环,要求用户输入一个数字,然后用它做 10 次
我想要一个内置的检查,如果用户输入一个不被接受的输入,循环应该重新开始它的当前迭代
例如,如果用户在第 3 轮中输入错误,则应重新开始第 3 轮。
我怎么做?java中是否有类似REDO语句的东西?
像这样的东西?
for(int i=0; i<10; i++){
if(input wrong){
i=i-1;
}
}
你在这里有几个选择。
Continue Java 中 的continue语句告诉循环返回其起点。但是,如果您使用的是 for 循环,这将继续到下一次迭代,这可能不是您想要的,因此使用 while 循环实现效果更好:
int successfulTries = 0;
while(successfulTries < 10)
{
String s = getUserInput();
if(isInvalid(s))
continue;
successfulTries++;
}
递减 这种方法对我来说似乎很难看,但如果您想使用 for 循环完成任务,您可以在检测到错误输入时减少 for 循环中的计数器(本质上是“重做”)。
for(int i = 0; i < 10; i++)
{
String s = getUserInput();
if(isInvalid(s))
{
i--;
continue;
}
}
我建议您使用 while 循环。
最好避免重新分配i
变量,这可能会导致混淆。
for(int i=0; i<10; i++){
String command = null;
do{
command = takeCommandFromInput();
} while(isNotValid(command));
process(command);
}