我有一个for循环,要求用户输入一个数字,然后用它做10次
我想要一个内置的检查,如果用户输入一个不接受的输入,循环应该重新启动它当前的迭代
例如,如果用户在第3轮输入错误,则应重新启动第3轮.
我怎么做?在java中有类似REDO语句的东西吗?
这样的事情?
for(int i=0; i<10; i++){
if(input wrong){
i=i-1;
}
}
Run Code Online (Sandbox Code Playgroud)
你有几个选择.
继续 Java中 的continue语句告诉循环返回到它的起始点.但是,如果你正在使用for循环,那么这将继续下一次迭代,这可能不是你想要的,所以这对于while循环实现更好:
int successfulTries = 0;
while(successfulTries < 10)
{
String s = getUserInput();
if(isInvalid(s))
continue;
successfulTries++;
}
Run Code Online (Sandbox Code Playgroud)
递减 这种方法对我来说似乎很难看,但是如果你想使用for循环来完成你的任务,你可以改为在你的for循环中减去计数器(实质上是'redo'),当你检测到错误的输入时.
for(int i = 0; i < 10; i++)
{
String s = getUserInput();
if(isInvalid(s))
{
i--;
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
我建议你使用while循环.
最好避免重新分配i
变量,这可能会导致混淆。
for(int i=0; i<10; i++){
String command = null;
do{
command = takeCommandFromInput();
} while(isNotValid(command));
process(command);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24106 次 |
最近记录: |