C语言 while 循环详解:do-while区别与实例演示

Noah
Noah
发布时间:2026-10-13| 5人浏览过
原创

C语言的核心程序结构包含顺序、选择和循环三种,其中循环用于重复执行特定代码块。本文重点剖析 while 与 do-while 语句的语法特性、执行逻辑及实际应用场景。

while 循环的原理与执行流程

while 循环是 C 语言中最基础的循环结构,其核心在于“先判断,后执行”。当循环条件表达式为真(非0)时,程序进入并重复执行循环体内的语句;一旦表达式求值结果为假(0),循环立即终止,流程跳转至循环体之后的代码继续运行。


这种机制确保了只有满足特定条件时,内部的代码块才会被执行。对于需要前置校验场景,它是首选方案。

while 循环实战案例

第1步:使用 while 计算累加总和

目的:利用循环结构高效完成 1 到 100 的整数累加运算,展示基础变量的更新与状态流转。

操作:定义整型变量 i 作为计数器,sum 用于存储累计结果。初始化 i=1, sum=0。在 while(i<=100) 条件成立时,持续将 i 的值加入 sum,并对 i 进行自增。

关键代码:

#include <stdio.h>
int main(void){
  int i=1, sum=0;
  while(i<=100){
    sum+=i;
    i++;
  }
  printf("%d\n",sum);
  return 0;
}

执行分析:当 i=1 时满足条件,进入循环体内,此时 sum 变为 1,i 变为 2。该过程循环往复直至 i 增至 101,导致 i<=100 不成立,循环退出。最终程序输出结果:5050。

第2步:统计输入字符数量

目的:掌握利用函数返回值作为循环条件的方法,解决动态输入的计数问题。

操作:使用 getchar() 实时读取键盘输入流。只要读取到的字符不是换行符 '\n',就视为有效字符并进行计数累加。

关键代码:

#include <stdio.h>
int main(){
  int n=0;
  printf("Input a string:");
  while(getchar()!='\n') n++;
  printf("Number of characters: %d\n", n);
  return 0;
}

验证结果:若输入字符串 c.biancheng.net 并按回车,循环将持续计数直到捕获换行符退出,最终打印字符总数为 15。

do-while 循环的结构特点

除了标准的 while,C语言还特有 do-while 循环结构。两者的根本差异在于 判断执行的顺序:do-while 采用“先执行,后判断”的逻辑,这意味着无论初始条件如何,循环体内的代码至少会被完整执行一次。



语法规范:do-while 的末尾必须带有分号 ;,这是初学者极易遗漏的关键标点符号。

do{
  // 循环体语句
}while(表达式); // 此处必须有分号

第3步:使用 do-while 完成相同计算任务

目的:验证 do-while 在相同业务逻辑下的代码等价性及其语法规则。

操作:同样实现 1 至 100 的累加。逻辑与 while 一致,但循环判断放在末尾。

关键代码:

#include <stdio.h>
int main(){
  int i=1, sum=0;
  do{
    sum+=i;
    i++;
  }while(i<=100);
  printf("%d\n", sum);
  return 0;
}

结果:执行流程依然顺利得到预期结果 5050。在此类场景中,while 和 do-while 效果等价,但在实际工程开发中,基于习惯性和灵活性考量,使用 while 的频率通常更高。

总结

掌握 while 循环的关键在于确保循环体内存在修改循环条件的逻辑,否则可能导致无法退出的死循环。而对于 do-while,务必留意结尾的分号以及它保证单次执行的特质。以上就是 C语言 while 语句用法的详细内容,更多关于 C语言 do-while 循环的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。