37. Java 控制流语句 Continue 语句
continue 语句是 Java 中用于跳过当前循环的剩余部分,直接进入下一次迭代的神器!当你只想跳过当前迭代的部分操作,continue 就非常有用了。它可以在 for、while 或 do-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,你可以让你的代码更加简洁、清晰!