一、continue
的作用
- 跳过当前迭代的剩余代码
- 当程序执行到
continue
时,会马上停止当前循环体的执行,直接跳到循环末尾,开始下一次循环。 - 在当前迭代中,
continue
之后的代码不会被执行。
- 当程序执行到
- 仅影响当前循环
continue
只会对它所在的最近一层循环产生作用。若为嵌套循环,continue
只会跳过内层循环的当前迭代,外层循环不受影响。
- 与
break
的区别continue
是跳过当前迭代,接着执行下一次循环。break
是直接终止整个循环,跳出循环体。
二、continue
的语法
while (condition) {
// 代码块1
if (some_condition) {
continue; // 跳过当前迭代,直接进入下一次循环
}
// 代码块2
}
- 若
some_condition
为真,程序会跳过代码块2
,直接进入下一次循环。
三、continue
的使用场景
- 跳过某些不需要处理的情况
- 在循环里,若某些条件不满足,可使用
continue
跳过当前迭代,避免执行不必要的代码。 - 示例:
for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 跳过偶数 } printf("%d ", i); // 只打印奇数 }
- 输出:
1 3 5 7 9
- 在循环里,若某些条件不满足,可使用
- 优化性能
- 在某些情形下,如果当前迭代不需要执行某些复杂操作,可以使用
continue
提前跳过,减少不必要的计算。 - 示例:
for (int i = 0; i < n; i++) { if (array[i] < 0) { continue; // 跳过负数 } // 对非负数进行复杂计算 result += sqrt(array[i]); }
- 在某些情形下,如果当前迭代不需要执行某些复杂操作,可以使用
- 处理边界条件
- 在循环中,若某些边界条件需要特殊处理,可以使用
continue
跳过这些情况。 - 示例:
for (int i = 0; i < n; i++) { if (i == 0 || i == n - 1) { continue; // 跳过第一个和最后一个元素 } // 处理中间元素 process(array[i]); }
- 在循环中,若某些边界条件需要特殊处理,可以使用
四、continue
的注意事项
- 不能用于
switch
语句continue
只能用于循环(如for
、while
、do - while
),不能用于switch
语句。
- 避免死循环
- 使用
continue
时,要确保循环条件能正常更新,否则可能导致死循环。 - 错误示例:
int i = 0; while (i < 10) { if (i % 2 == 0) { continue; // 跳过偶数 } i++; // 这行代码永远不会被执行 }
- 这里
i
的值永远不会更新,从而导致死循环。
- 使用
- 与
break
的区别continue
是跳过当前迭代,继续下一次循环。break
是直接终止整个循环。
五、continue
的示例代码
以下是一个完整示例,展示continue
的用法:
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
if (i % 3 == 0) {
continue; // 跳过能被3整除的数
}
printf("%d ", i); // 打印不能被3整除的数
}
return 0;
}
- 输出:
1 2 4 5 7 8 10
六、总结
continue
是C语言中的一种控制流语句,用于跳过当前循环迭代的剩余部分,直接进入下一次循环。- 它的主要作用是优化代码逻辑,避免不必要的计算或处理。
- 使用时要注意避免死循环,并确保循环条件能够正常更新。