我如何完全重启for循环或if语句?

Jes*_*rak 1 java for-loop if-statement

我正在寻找这两个问题的答案,因为任何一个都适用于我的代码.是否有完全重启for循环或重新运行if语句的函数或其他内容?对于for循环,让我们说它是

for(int i = 0; i<=30; i++){
   //code here
}
Run Code Online (Sandbox Code Playgroud)

它已经到了这一点i = 5,我该怎么告诉它回去i = 0

对于if声明,我们说if声明是:

if(i == 1 && j == 2){
  //more code here
}
Run Code Online (Sandbox Code Playgroud)

if声明结束时,如果if声明是true完全重新运行if声明,我该怎么说呢?

eli*_*ide 6

TL; DR听起来你想要一个while循环或者可能是一个递归函数.

for环路版本

您无法重新启动if语句,但可以在循环中修改循环控制变量for.只需i = 0;注意无限循环,如下所示:

for(int i = 0; i < 30; i++) {
    // do stuff
    if(someCondition) {
        i = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这不是很好的风格,并且可能导致一些难以找到的恶魔.人们不习惯在循环中寻找对循环控制变量的修改,for因为它是你的那些东西之一.只是.别.做.

while环路版本

因此,如果您计划在循环内部进行修改for,则应使用while循环而不是i循环.

例:

int i = 0;
while(i < 30) {
    // do stuff
    if(someCondition) {
        i = 0;
    } else {
        i++;
    }
}
Run Code Online (Sandbox Code Playgroud)

递归函数版本

根据您真正想要做的事情,您可能还会考虑创建一个函数并递归调用它:

function myFunction() {
    // do stuff
    if(someCondition) {
        myFunction(); // this is the recursion
    }
}
for(int i = 0; i < 30; i++) {
    myFunction();
}
Run Code Online (Sandbox Code Playgroud)

通过所有这些方法,注意无限循环!如果你不小心,它们很容易创建.