掌握while循环:C语言编程基础

发布于:2025-08-12 ⋅ 阅读:(20) ⋅ 点赞:(0)

目录

一、while循环简介

二、if和while的对比

语法结构对比:

实际代码对比:

三、while语句的执行流程

while循环的执行流程如下:

流程图表示:

四、while循环实践

练习:在屏幕上打印1~10的值

五、进阶练习

题目:输入一个正整数,逆序打印这个整数的每一位

解题思路:

参考代码:

代码改进建议:


一、while循环简介

        C语言提供了3种循环语句,while循环是其中最基础的一种。while语句的语法结构与if语句非常相似,但功能却大不相同。


二、if和while的对比

语法结构对比

if(表达式)
    语句;

while(表达式)
    语句;  // 如果循环体想包含更多语句,可以加上大括号

实际代码对比

// 代码1 - if语句
#include <stdio.h>
int main()
{
    if(1)
        printf("hehe\n"); // if条件满足,只打印一次hehe
    return 0;
}

// 代码2 - while语句
#include <stdio.h>
int main()
{
    while(1)
        printf("hehe\n"); // while条件满足,会不断循环打印hehe
    return 0;
}

关键区别:if语句只会执行一次条件满足的代码,而while语句会重复执行,直到条件不再满足。


三、while语句的执行流程

while循环的执行流程如下:

  1. 首先判断表达式值:

    • 如果值为0(假),循环立即结束

    • 如果值不为0(真),执行循环体语句

  2. 循环体执行完毕后,再次判断表达式

  3. 重复上述过程,直到表达式值为0

流程图表示:


四、while循环实践

练习:在屏幕上打印1~10的值

#include <stdio.h>
int main()
{
    int i = 1;          // 初始化计数器
    while(i <= 10)      // 循环条件
    {
        printf("%d ", i); // 打印当前值
        i = i + 1;      // 更新计数器
    }
    return 0;
}

程序分析:

  1. 初始化i为1

  2. 检查i是否<=10

  3. 如果条件为真,执行循环体(打印i并使i增加1)

  4. 重复步骤2-3,直到i>10时循环结束


五、进阶练习

题目:输入一个正整数,逆序打印这个整数的每一位

示例:

  • 输入:1234,输出:4 3 2 1

  • 输入:521,输出:1 2 5

解题思路

  1. 获取最低位:使用n%10运算,如1234%10=4

  2. 去掉最低位:使用n/10运算,如1234/10=123

  3. 循环上述两步,直到n变为0

参考代码

#include <stdio.h>
int main()
{
    int n = 0;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    
    while(n != 0)
    {
        printf("%d ", n % 10); // 打印当前最低位
        n /= 10;              // 去掉已经处理的最低位
    }
    
    return 0;
}

代码改进建议

  1. 添加输入验证,确保输入的是正整数

  2. 可以在最后添加换行,使输出更整洁

  3. 考虑处理n=0的特殊情况

#include <stdio.h>
int main()
{
    int n = 0;
    printf("请输入一个正整数:");
    scanf("%d", &n);
    
    if(n == 0) {
        printf("0\n");
        return 0;
    }
    
    if(n < 0) {
        printf("输入必须是正整数!\n");
        return 1;
    }
    
    while(n != 0)
    {
        printf("%d ", n % 10);
        n /= 10;
    }
    printf("\n"); // 添加换行
    
    return 0;
}

网站公告

今日签到

点亮在社区的每一天
去签到