C 语言中的 Continue 语句
C 语言中 continue 语句的行为与 break 语句 略有不同。它不是强制终止循环,而是强制执行循环的下一次迭代,并跳过当前迭代中的其余语句。
C 语言中 Continue 语句是什么?
continue 语句用于跳过当前迭代中循环内其余语句的执行,并将其转移到下一次循环迭代。它可以与所有 C 语言循环结构(while、do while 和 for)一起使用。
Continue 语句语法
Continue 语句的使用结构如下:
while (expr){ . . . . . . if (condition) continue; . . . }
Continue 语句流程图
以下流程图展示了 continue 的工作原理 -

必须在循环内使用 continue 语句。如果在循环外使用 continue 语句,则会导致编译错误。与 break 语句不同,continue 语句不能与 switch-case 语句 一起使用。
Continue 语句与嵌套循环
在嵌套循环中,continue 将继续执行最近循环的下一次迭代。 continue 语句通常与 if 语句 一起使用。
Continue 语句示例
示例:使用 While 循环的 Continue 语句
在此程序中,循环为变量"i"生成 1 到 10 个值。只要 i 为偶数,则开始下一次迭代,跳过 printf 语句。只打印奇数。
#include <stdio.h> int main(){ int i = 0; while (i < 10){ i++; if(i%2 == 0) continue; printf("i: %d ", i); } }
输出
i: 1 i: 3 i: 5 i: 7 i: 9
示例:使用 For 循环的 Continue 语句
以下程序会过滤掉字符串中的所有元音字母 -
#include <stdio.h> #include <string.h> int main () { char string[] = "Welcome to TutorialsPoint C Tutorial"; int len = strlen(string); int i; printf("Given string: %s ", string); printf("after removing the vowels "); for (i=0; i<len; i++){ if (string[i]=='a' || string[i]=='e' || string[i] == 'i' || string[i] == 'o' || string[i] == 'u') continue; printf("%c", string[i]); } return 0; }
输出
运行代码并检查其输出 −
Given string: Welcome to TutorialsPoint C Tutorial after removing the vowels Wlcm t TtrlsPnt C Ttrl
示例:嵌套循环的 Continue 语句
如果 continue 语句出现在内层循环中,程序控制将跳转到相应循环的开头。
在下面的示例中,有三个 for 循环,一个嵌套在另一个循环中。这些循环分别由变量 i、j 和 k 控制。如果 k 等于 i 或 j,最内层循环将跳过 printf 语句,并转到其下一个 k 值。当第二个 j 循环等于 i 时,它将执行 continue 语句。结果,显示三个数字 1、2 和 3 的所有唯一组合。
#include <stdio.h> int main (){ int i, j, k; for(i = 1; i <= 3; i++){ for(j = 1; j <= 3; j++){ if (i == j) continue; for (k=1; k <= 3; k++){ if (k == j || k == i) continue; printf("%d %d %d ", i,j,k); } } } return 0; }
输出
运行代码并检查其输出 −
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
示例:删除字符串中单词之间的空格
以下代码检测字符串中单词之间的空格,并将每个单词打印在不同的行上。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main(){ char string[] = "Welcome to TutorialsPoint C Tutorial"; int len = strlen(string); int i; printf("Given string: %s ", string); for (i = 0; i < len; i++){ if (string[i] == ' '){ printf(" "); continue; } printf("%c", string[i]); } return 0; }
输出
执行此代码后,您将获得以下输出 -
Given string: Welcome to TutorialsPoint C Tutorial Welcome to TutorialsPoint C Tutorial
示例:查找数字的质因数
continue 语句非常有效的一个案例是编写程序查找给定数字的质因数。
该程序的算法如下:-
给定数字从 2 开始依次除以数字。如果该数字可被 2 整除,则将给定数字简化为除法,并检查结果数字是否能被 2 整除,直到不能再被整除。
如果不是 2,则对从 3 开始的所有奇数重复该过程。循环运行,直到给定数字简化为 1。
以下是查找质因数的程序 -
#include <stdio.h> int main (){ int n = 64; int i, m = 2; printf("Prime factors of %d: ", n); while (n > 1){ if (n % m == 0){ n = n/m; printf("%d ", m); continue; } if (m == 2) m++; else m = m+2; } return 0; }
输出
这里,给定的数字是 64。因此,当您运行此代码时,它将产生以下输出 -
Prime factors of 64: 2 2 2 2 2 2
将数字改为 45,然后再改为 90。再次运行代码。现在您将获得以下输出 -
Prime factors of 45: 3 3 5 Prime factors of 90: 2 3 3 5