继续在For循环中的If语句内部

时间:2014-09-12 04:56:26

标签: java android

我有一个for循环,其中我需要跳过一些行。

以更简单的方式,这就是我所做的:

for (int x=0; x<6; x++){
    if (x=3){
        continue;
    }
    Log.i("LOGLOG","LOGLOGLOG");
}

continue语句是否有效,如跳转到for循环的另一个迭代,是不是?如果没有,最好的方法是什么?或者我该如何优化呢?

感谢advnace。

2 个答案:

答案 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");
    }

这也适用于您希望在最外层循环上继续迭代的嵌套循环。

相关问题