作者:解学武

C语言continue用法详解

在 C语言的循环结构中,continue 关键字扮演着独特的角色,它不像 break 那样直接终止整个循环,而是选择性地跳过当前循环的剩余部分,并立即开始下一次循环的迭代。这种机制在处理特定条件时非常有用,可以优化循环的执行流程。

continue的基本用法

continue 关键字通常与 if 语句结合使用,在循环体内根据特定条件判断是否跳过当前循环的剩余语句。

注意,continue 适用于 while 和 for 循环,但不适用于 switch 语句。

【示例 1】跳过偶数

以下是一个简单的例子,演示如何使用 continue 跳过偶数:
#include <stdio.h> 
 
int main() { 
    int i; 
    for (i = 1; i <= 10; i++) { 
        if (i % 2 == 0) { 
            continue; // 跳过偶数 
        } 
        printf("%d ", i); 
    } 
    printf("\n"); 
    return 0; 
}
运行结果:

1 3 5 7 9

在这个例子中,当 i 为偶数时,continue 语句会跳过 printf() 函数调用,直接开始下一次循环迭代。

使用 continue 的注意事项:
  • 避免过度使用:虽然 continue 可以简化某些循环逻辑,但过度使用会使代码难以理解和维护。应谨慎使用,确保代码清晰易懂。
  • 与 break 的区别:continue 只是跳过当前循环的剩余部分,而 break 会完全终止循环。在使用时,要根据实际需求选择合适的关键字。
  • 多层循环中的影响:continue 只影响它所在的那一层循环。在多层循环中,它不会跳出外层循环。

【示例 2】处理字符串中的特定字符

以下是一个更复杂的例子,演示如何在处理字符串时使用 continue 跳过特定字符:
#include <stdio.h> 
#include <string.h> 
 
int main() { 
    char str[] = "Hello, World! 123"; 
    int i, len = strlen(str); 
 
    for (i = 0; i < len; i++) { 
        if (str[i] == ' ' || str[i] == '!') { 
            continue; // 跳过空格和感叹号 
        } 
        printf("%c", str[i]); 
    } 
    printf("\n"); 
    return 0; 
}
运行结果:

HelloWorld123

在这个例子中,continue 语句用于跳过字符串中的空格和感叹号,只打印其他字符。

【示例 3】素数筛选

以下是一个使用 continue 进行素数筛选的例子:
#include <stdio.h> 
#include <stdbool.h> 
 
bool isPrime(int num, int divisor) { 
    if (num % divisor == 0) { 
        return false; 
    } 
    return true; 
} 
 
int main() { 
    int num, i, j; 
    printf("Enter a number: "); 
    scanf("%d", &num); 
 
    for (i = 2; i <= num; i++) { 
        for (j = 2; j * j <= i; j++) { 
            if (!isPrime(i, j)) { 
                continue; // 如果不是素数,跳过当前循环的剩余部分 
            } 
        } 
        // 如果内层循环没有跳出,说明是素数 
        printf("%d ", i); 
    } 
    printf("\n"); 
    return 0; 
}
在这个例子中,isPrime() 函数用于检查一个数是否可以被另一个数整除。在筛选素数时,如果 i 不是素数(即存在一个小于等于其平方根的除数能整除它),则 continue 语句会跳过当前循环的剩余部分,即不打印该数。只有当内层循环没有执行 continue 时,才说明 i 是素数,此时才打印出来。

总结

continue 关键字在 C 语言循环结构中提供了一种灵活的方式来跳过当前循环的剩余部分,并立即开始下一次迭代。通过合理使用 continue,可以简化循环逻辑,提高代码效率。然而,也需要注意避免过度使用,以确保代码的可读性和可维护性。
声明:当前文章为本站“玩转C语言和数据结构”官方原创,由国家机构和地方版权局所签发的权威证书所保护。

添加微信咨询 加站长微信免费领
C语言学习小册
加站长微信免费领C语言学习小册
微信ID:xiexuewu333