当前位置: 首页 > news >正文

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

目录

一、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条件满足,只打印一次hehereturn 0;
}// 代码2 - while语句
#include <stdio.h>
int main()
{while(1)printf("hehe\n"); // while条件满足,会不断循环打印hehereturn 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;
}
http://www.dtcms.com/a/325429.html

相关文章:

  • Unity跨平台性能优化全攻略:PC与安卓端深度优化指南 - CPU、GPU、内存优化 实战案例C#
  • 《番外:Veda的备份,在某个未联网的旧服务器中苏醒……》
  • 扩展运算符...作用介绍
  • 关系型数据库:原理、演进与生态全景——从理论基石到云原生的深度巡礼
  • 国内 Mac 开启 Apple Intelligence 教程
  • 深入浅出JVM:Java虚拟机的探秘之旅
  • 第2节 PyTorch加载数据
  • 关系操作符详解与避坑指南
  • 软件编程2-标准IO
  • Maxscript实现在物体表面均匀散布的4种主流算法
  • C# 异步编程(计时器)
  • 大模型提示词工程实践:大语言模型文本转换实践
  • 实战:用 PyTorch 复现一个 3 层全连接网络,训练 MNIST,达到 95%+ 准确率
  • 软考高级资格推荐与选择建议
  • 大语言模型(LLM)核心概念与应用技术全解析:从Prompt设计到向量检索
  • STM32蓝牙模块驱动开发
  • 什么是结构化思维?什么是结构化编程?
  • 获取MaixPy系列开发板机器码——MaixHub 模型下载机器码获取方法
  • 【Python】在rk3588开发板排查内存泄漏问题过程记录
  • 视频前处理技术全解析:从基础到前沿
  • DreaMoving:基于扩散模型的可控视频生成框架
  • 安全合规4--下一代防火墙组网
  • GaussDB 数据库架构师修炼(十三)安全管理(1)-账号的管理
  • vue+flask基于规则的求职推荐系统
  • CentOS7搭建安全FTP服务器指南
  • 【安全发布】微软2025年07月漏洞通告
  • C语言如何安全的进行字符串拷贝
  • MQTT:Vue集成MQTT
  • GaussDB安全配置全景指南:构建企业级数据库防护体系
  • 【vue(一))路由】