C语言while、do-while、for循环课程5
课程3中,提到C语言基本语句分为:数据定义语句,数据处理语句
数据处理语句又可分为:表达式语句,函数调用语句,空语句(;,复合语句,流程控制语句。
流程控制:指程序代码执行的顺序。流程的分类:顺序、选择、循环。
C语言的循环结构通过三种语句来实现,即while、do-while、forWhile语句的一般形式while(循环条件表达式循环体语句;
功能:当循环条件表达式为真,执行循环体语句,执行完了,再判断条件表达式是否为真,为真,则再执行,直到条件表达式为假时,退出while循环。
实例1:用while语句求1~100的累加和。
#include//C语言编译预处理命令,文件包含为stdio.h
voidmain(//至少有一个用main(命名的主函数,返回值为void无值类型{
inti=1,sum=0;/*初始化循环,定义变量i和累加器sum,定义和之前,累加器清零*/
while(i<=100
{
sum+=i;//sum+=i是一个复合赋值运算符,等价于sun=sun+i;i++;
}
printf("1+2+3+...+100=%d ",sum;//输出十进制数,1加到100累加器的和}
MicrosoftVisualC++6.0运行结果
使用while循环时,一定要对循环条件表达式中出现的变量提前赋值,并在循环体内修改有关变量的值,以使循环能趋于终止。
While循环为当型循环,do-while循环也叫直到型循环。
do-while语句的一般形式为:
do
{
循环体语句}while(
循环条件表达式
实例2:用do-while编制一个求n!的程序,n的值由键盘输入。
#include
voidmain(
{inti=1,n,p=1;
printf("请从键盘输入一个数,进行连乘积: ";
scanf("%d",&n;
do
{p=p*i;
i++;
}while(i<=n;
printf("连乘积的结果为p=n!:%d ",p;
}
分析:此程序,先定义三个变量i、n、p,p从p乘1开始执行,再i进行自增1,循环体中的语句执行完毕后,判断while的循环条件表达式,当i自增1为2时,看2是否<=输入的n值,若为真,则继续返回do循环,直到i自增的值比n大,则退出循环。
do-while主要用于人机交互,do-while循环是先执行后判断,do里面的循环体至少被执行一次。区别于while是先判断循环条件表达式,后执行。
for循环也叫步长型循环
一般格式:for(表达式1;表达式2;表达式3循环体语句;
功能:先执行表达式1,再执行表达式2,如果表达式2的值为真,就执行循环体语句,最后执行表达式3.完成一次循环后,从表达式2执行,直到表达式2为假,退出循环。
实例3:参考实例1,用while求1~100的累加和,现在用for语句求1~100的累
加和。
#include
intmain(void
{
inti;intsum=0;
/*初始化循环,定义变量i
和累加器sum,定义和之前,累加器清零*/
for(i=1;i<=100;i++
{
sum=sum+i;
}
printf("sum=%d ",sum;
return0;
}
实例4:爱因斯坦的`阶梯问题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。请问该阶梯至少有多少阶。编写一个C程序解决该问题。
#include
main(
{intx;
for(x=7;;x+=7
if(x%3==2&&x%5==4&&x%6==5
break;
printf("Thenumberoftheladdersis:%d ",x;
}
分析:发现x一定是7的整数倍,可以依次递增地求出7的整数倍的值(7*1、7*2、7*3……),每求出一值,就用该值与2、3、5、6进行取模运算,最先得到的满足上述5个方程式的x值即为本题的答案。
用while语句,简单快速实现爱因斯坦的阶梯问题
#include
intmain(
{
inti=1;/*i为所设的阶梯数*/
while(!((i%2==1&&(i%3==2&&(i%5==4&&(i%6==5&&(i%7==0
++i;/*满足一组同余式的判别*/
人生怎会少得了磨难?可经历过磨难,你会懂得—那是成长。
那天,语文期中试卷发下来了,我完全落败,心中很不是滋味。在回家的路上,我只觉得平时短近的路一下子拉长了,变得遥远漫长。路上,我看见花儿凋谢了,不禁感叹:原来春天也有花枯萎,这正如我的成绩。走了好久,我才回到家,无力地推开门,眼前一片昏暗,心想:原来阳光也不过如此,它并不能照亮每一处角落。我坐在床上,静静地等,不一会儿,爸爸下班了,他看见我脸色苍白,便猜到了八九分:“是这次没考好吗?”他的神情并不严肃,相反,倒有些和蔼。我咬着嘴唇,点点头。“自己分析过考得差的原因吗?”爸爸一边说,一边坐下来,准备与我谈心。“一方面是由于我想复杂了,另一方面是我粗心了。”我回答道。“那只能说明一个问题,你的阅读能力不好,还有待提高。”爸爸像是要再帮我分析一下原因,“就算阅读扣分太多了,但你要记住,基础分一点要牢抓,做这种题目的大忌就是粗心。这道题以前都做过,为什么还会做错呢?”听了这话,我眼圈红了,泪珠在眼眶里直打转,我没让它掉下来。爸爸知道我难过,拍拍我肩膀,安慰了几句:“好啦,别难过了,已经考了,现在伤心还有何用呢?失败了不要紧,人生不可能一帆风顺,但你要记住教训,不能再犯,明白吗?”我抬起头。笑了几下。“我就知道,我的女儿没有那么容易被打败!”爸爸激励着我。咔嚓!我内心深处的锁被打开了,是爸爸开启了我心灵的锁,我一下子释然了。
夜晚,我出去散步,那徐徐的清风彻底吹走了忧伤,迎接我的,又是一个清新的.世界,没有烦恼,只有失败后的不放弃,正如花谢了,有再开的时候;阳光暗了,有再亮的时候。我突然懂得了许多,也成长了不少……
人生路上甜苦和喜忧,我们都必须自己面对。当你遇带困难时,你不要退缩,战胜自己的害怕,勇于挑战困难,只要你相信――阳光总在风雨后。
人生在世,没有什么十全十美的,无论做什么总会遇到一些坎坷的,但只要你勇敢前进,你就会成功。生活丰富多彩,世界千姿百态,适应生活,融入世界,即使遇到再大的风雨,你也要走下去,永不向困难低头。你只要战胜自己心里的孤单,恐惧。你就可以独自闯下属于你自己的一片蓝天。
挫折有时也是一种磨练而不是一种折磨。由于当你战胜了挫折,你就会觉得你的人生也有雨后彩虹,那么你也许就会战胜了自己的心魔,不再害怕天黑,不再害怕挫折,由于它给了你享受雨后彩虹的滋味,它让你知道了阳光一定会在风雨后。
人生不也正像一棵树吗?有时难免会遭受到突如其来的风雨,雷击。但是树都可以在风雨中屹立着,在雷击中挺拔着,为什么我们就不可以坦开胸怀,微笑着迎接风雨呢?假如我们在挫折时,缺乏信念,缺乏顽强与勇气,那又怎能战而战之?
生命如花,花期短暂,生命亦不能永恒。莫让你的光阴虚度而逝。好好把握每分每秒,战胜每一步坎坷,只要你战胜了心魔,战胜了挫折,那么你的人生就不会暗淡无光,毫无意义。
扇起满载希望的翅膀,风雨无阻地向梦想的天空飞翔,带着那份坚定,那份执着,寻找风雨过后的彩虹,沐浴风雨过后的阳光。
© 2022 xuexicn.net,All Rights Reserved.