我有一个for循环,其中我需要跳过一些行。
以更简单的方式,这就是我所做的:
for (int x=0; x<6; x++){
if (x=3){
continue;
}
Log.i("LOGLOG","LOGLOGLOG");
}
continue语句是否有效,如跳转到for循环的另一个迭代,是不是?如果没有,最好的方法是什么?或者我该如何优化呢?
感谢advnace。
答案 0 :(得分:2)
您的循环正在进行分配,而非比较。但忽略这一点,这就是你的答案。
是的,继续会影响for循环。您将跳过当前循环块中的其余代码,并开始下一次迭代。
中断并继续不影响if语句,它们只影响循环(以及交换机的中断)。
如果你需要跳几个循环,你甚至可以使用labels
class ContinueWithLabelDemo {
public static void main(String[] args) {
String searchMe = "Look for a substring in me";
String substring = "sub";
boolean foundIt = false;
int max = searchMe.length() -
substring.length();
test:
for (int i = 0; i <= max; i++) {
int n = substring.length();
int j = i;
int k = 0;
while (n-- != 0) {
if (searchMe.charAt(j++) != substring.charAt(k++)) {
continue test;
}
}
foundIt = true;
break test;
}
System.out.println(foundIt ? "Found it" : "Didn't find it");
}
}
答案 1 :(得分:1)
如果你想要明确,你可以像这样标记你的循环:
myLoop : for (int x=0; x<6; x++){
if (x==3){
continue myLoop;
}
Log.i("LOGLOG","LOGLOGLOG");
}
这也适用于您希望在最外层循环上继续迭代的嵌套循环。