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
声明,我该怎么说呢?
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)
通过所有这些方法,注意无限循环!如果你不小心,它们很容易创建.