首页 > 编程笔记 > C语言笔记

C语言while和if的嵌套(附带实例)

在C语言编程中,while 循环和 if 条件语句的嵌套是一个强大的组合,可以让我们实现复杂的逻辑控制。这种嵌套结构允许我们在循环执行的过程中根据特定条件做出决策,从而使程序更加灵活和高效。

while 循环基础

while 循环用于重复执行一段代码,只要给定的条件为真。while 的基本语法如下:

while (条件) {
    // 循环体
}

循环会一直执行,直到条件变为假,这使得 while 循环特别适合处理未知迭代次数的情况。

if 语句基础

if 语句用于根据特定条件执行代码,它的基本语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
} else {
    // 如果条件为假,执行这里的代码
}

if 语句允许程序根据不同的情况执行不同的代码路径。

while 和 if 的嵌套

将 if 语句嵌套在 while 循环内,我们可以在每次循环迭代时进行条件检查。这种结构特别有用,例如当我们需要在一个循环中处理特殊情况或者需要在特定条件下跳出循环时。下面是一个例子:

#include <stdio.h>

int main() {
    int i = 0;
    while (i < 10) {
        if (i % 2 == 0) {
            printf("%d 是偶数\n", i);
        } else {
            printf("%d 是奇数\n", i);
        }
        i++;
    }
    return 0;
}

这个程序会输出 0 到 9 的数字,并标注每个数字是奇数还是偶数。输出结果如下:

0 是偶数
1 是奇数
2 是偶数
3 是奇数
4 是偶数
5 是奇数
6 是偶数
7 是奇数
8 是偶数
9 是奇数

使用嵌套结构控制循环流程

嵌套的 if 语句还可以用来控制循环的执行,例如,我们可以使用 break 语句在特定条件下提前结束循环:

#include <stdio.h>

int main() {
    int sum = 0;
    int i = 1;
    
    while (1) {  // 无限循环
        sum += i;
        if (sum > 50) {
            printf("和超过 50,停止累加\n");
            break;  // 跳出循环
        }
        i++;
    }
    
    printf("最终和为 %d,最后加上的数是 %d\n", sum, i);
    return 0;
}

这个程序会一直累加整数,直到总和超过 50。输出结果可能如下:

和超过 50,停止累加
最终和为 55,最后加上的数是 10

嵌套结构的复杂应用

我们可以创建更复杂的嵌套结构,包括多层的 while 循环和 if 语句,这在处理多维数据或复杂算法时非常有用。以下是一个稍微复杂的例子,展示了如何使用嵌套结构来找出 100 以内的所有质数:

#include <stdio.h>
#include <stdbool.h>

int main() {
    int i = 2;
    while (i < 100) {
        bool isPrime = true;
        int j = 2;
        while (j * j <= i) {
            if (i % j == 0) {
                isPrime = false;
                break;
            }
            j++;
        }
        if (isPrime) {
            printf("%d ", i);
        }
        i++;
    }
    return 0;
}

这个程序使用了嵌套的 while 循环来检查每个数是否为质数,同时使用 if 语句来控制内部循环的流程和决定是否输出数字。程序的输出将会是 100 以内的所有质数。


声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。