刚学 C 语言的朋友,是不是经常遇到需要重复执行代码的情况?比如计算 1 到 100 的总和,总不能写 100 行加法代码吧?这时候循环结构就派上大用场啦。今天兔子哥就带大家好好聊聊循环结构,用实例和代码手把手教你怎么用,看完你就知道,原来重复的工作交给循环来做,能省这么多事!
一、先搞明白:循环结构到底是啥?
简单说,循环就是让一段代码重复执行的 “工具”。就像咱们每天吃饭、睡觉一样,固定的动作重复做,编程里也有很多重复的操作需要处理。C 语言里常用的循环有三种:for 循环、while 循环、do-while 循环。有同学可能会问,为啥要分这么多种?其实啊,它们适用的场景不一样,有的适合知道循环次数的情况,有的适合不知道次数但知道结束条件的情况,咱们一个个来看。
二、for 循环:知道次数用它准没错
for 循环是最常用的,尤其适合提前知道要循环多少次的场景。它的基本格式是这样的:
c
for(初始化; 循环条件; 增量){循环体代码;}咱们来个实例:计算 1 到 100 的总和。有同学可能会说,1+2+3+…+100,手动算都知道是 5050,但用代码怎么实现呢?看这个完整代码:
c
#include int main(){int sum = 0; // 用来存总和的变量int i; // 循环计数器for(i = 1; i <= 100; i++){sum = sum + i; // 每次把i加到sum里}printf("1到100的总和是:%d\n", sum);return 0;}运行这段代码,会输出 5050。这里要注意,初始化部分
i=1只执行一次,然后判断i<=100是否成立,成立就执行循环体,执行完后i++让 i 加 1,接着再判断,直到 i 超过 100 才结束循环。之前有个粉丝留言说,他刚开始学的时候把i++写成i+1,结果循环停不下来,大家可别犯这个错哦,i++才是让 i 自己增加的正确写法。三、while 循环:不知道次数?看条件就行
有时候咱们不知道要循环多少次,只知道循环什么时候结束,这时候 while 循环就很合适。它的格式简单:
c
while(循环条件){循环体代码;}举个例子:让用户输入数字,直到输入 0 就停止,然后计算输入的所有正数的和。代码这样写:
c
#include int main(){int num;int sum = 0;printf("请输入数字(输入0结束):");scanf("%d", &num);while(num != 0) // 只要输入的不是0就继续循环{if(num > 0) // 只加正数{sum = sum + num;}printf("请输入数字(输入0结束):");scanf("%d", &num); // 再输入下一个数}printf("所有正数的总和是:%d\n", sum);return 0;}这个程序里,我们不知道用户会输入几个数字,但知道输入 0 就结束,所以用 while 循环很方便。有朋友可能会问,要是用户一开始就输入 0 呢?那循环体一次都不会执行,sum 还是 0,这也符合逻辑。记得啊,while 循环是先判断条件再执行循环体,所以条件不成立的话,可能一次都不执行。
四、do-while 循环:至少执行一次才靠谱
do-while 循环和 while 循环很像,但它是先执行一次循环体,再判断条件。格式是:
c
do{循环体代码;}while(循环条件);什么时候用呢?比如做一个菜单选择功能,要求用户必须选一次,选 “退出” 才结束。看这个实例:
c
#include int main(){int choice;do{printf("===== 菜单 =====\n");printf("1. 查看信息\n");printf("2. 修改信息\n");printf("3. 退出\n");printf("请选择(1-3):");scanf("%d", &choice);switch(choice){case 1:printf("正在查看信息...\n");break;case 2:printf("正在修改信息...\n");break;case 3:printf("谢谢使用,再见!\n");break;default:printf("输入错误,请重新选择!\n");}}while(choice != 3); // 选3就退出循环return 0;}这个程序不管用户第一次选啥,菜单都会先显示一次,这就是 do-while 的特点 —— 至少执行一次循环体。有同学分享经验说,做登录功能的时候,用 do-while 循环让用户至少输入一次账号密码,体验会更好,大家可以试试。
五、循环里的小技巧:break 和 continue 别弄混
循环里还有两个常用的关键词:break 和 continue。很多新手容易搞混,兔子哥给你讲清楚:break 是直接跳出整个循环,不管后面还有多少次;continue 是跳过本次循环剩下的内容,直接进入下一次循环。
比如这个例子,计算 1 到 20 之间所有不是 3 的倍数的数的和:
c
#include int main(){int sum = 0;for(int i = 1; i <= 20; i++){if(i % 3 == 0) // 如果是3的倍数{continue; // 跳过本次循环,不执行后面的sum累加}sum = sum + i;}printf("1到20中不是3的倍数的数的总和是:%d\n", sum);return 0;}要是把这里的 continue 换成 break,那第一次遇到 3 的倍数(也就是 i=3 时)就会跳出循环,sum 就成了 1+2=3,这就错啦。所以用的时候一定要想清楚,是要跳出整个循环,还是只跳过这一次。
六、兔子哥的小总结
循环结构是编程里的 “省力神器”,用好它能少写很多重复代码。for 循环适合次数明确的情况,while 循环适合条件明确但次数未知的情况,do-while 循环适合至少要执行一次的场景。刚开始学的时候,很容易写出死循环(就是循环停不下来),这时候可以检查循环条件是不是永远成立,或者增量部分是不是没写对。
多动手写几个实例比光看教程有用多了,比如试试用循环打印三角形、计算阶乘,遇到问题别着急,慢慢调试总能解决。希望这篇文章能帮到正在学 C 语言的你,循环这块儿吃透了,后面学数组、函数都会更轻松!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~