37. Java 控制流语句 Continue 语句

66 阅读3分钟

37. Java 控制流语句 Continue 语句

continue 语句是 Java 中用于跳过当前循环的剩余部分,直接进入下一次迭代的神器!当你只想跳过当前迭代的部分操作,continue 就非常有用了。它可以在 forwhiledo-while 循环中使用。一旦执行 continue,程序会立刻跳到下一次循环,重新计算条件。🎯


1. 未标记的 continue 语句

没有标签的 continue 语句只会跳过当前循环的剩余部分,然后继续执行下一次循环。它适用于简单的单层循环。✅

示例:统计字符串中字符 'p' 的出现次数

假设我们需要统计字符串中字符 'p' 出现的次数。我们就可以使用 continue 来跳过那些不是 'p' 的字符。

class ContinueDemo {
    public static void main(String[] args) {
        String searchMe = "peter piper picked a " + "peck of pickled peppers";
        int max = searchMe.length();
        int numPs = 0;

        for (int i = 0; i < max; i++) {
            // 仅对字符 'p' 感兴趣
            if (searchMe.charAt(i) != 'p')
                continue;  // 如果字符不是 'p',跳过本次循环

            // 处理字符 'p'
            numPs++;
        }
        System.out.println("Found " + numPs + " p's in the string.");
    }
}
程序输出:
Found 9 p's in the string.
解释:
  • 在这个例子中,我们使用 continue 跳过了不是 'p' 的字符。每次遇到不是 'p' 的字符时,continue 会让程序跳过剩余的代码,直接进入下一次迭代。
  • 如果字符是 'p',我们就增加计数器 numPs,最终统计字符串中 'p' 出现的次数。
continue 语句的效果:
  • 如果没有使用 continue,程序会逐个检查每个字符并处理它们,计数就不准确了。使用 continue,我们确保只处理 'p' 字符,最终输出准确的结果。

2. 带标签的 continue 语句

当有嵌套循环时,带标签的 continue 语句可以帮助你跳过外层循环的当前迭代。这个技巧特别适用于复杂的多层循环,可以让你控制外层循环的执行。🎯

示例:搜索字符串中的子字符串

假设我们在一个字符串中搜索某个子字符串,找到它就停止,没找到就跳到下一次外层循环。我们可以使用带标签的 continue 来跳过外层循环的当前迭代。

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");
    }
}
程序输出:
Found it
解释:
  • 在这个程序中,我们使用带标签的 continue 来跳过外层循环的当前迭代。如果子字符串在 searchMe 中没有找到,continue test 就会跳到外层循环的下一次迭代。
  • 一旦找到子字符串,break test 会退出外层循环并打印 "Found it"

📝 总结

  • 未标记的 continue:跳过当前循环的剩余部分,并继续执行下一次迭代。适用于单层循环。
  • 带标签的 continue:跳过外层循环的当前迭代,适用于嵌套循环,让你控制外层循环的执行。

continue 语句是一个非常强大的工具,能帮助我们在复杂的循环中跳过不需要的部分,提升代码的效率和可读性!💡 通过合理使用 continue,你可以让你的代码更加简洁、清晰!