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;/*满足一组同余式的判别*/
玩游戏的时候,老师说:“先示范一下吧!”同学们做示范的时候,个个像热锅上的蚂蚁一样紧张。
开始游戏了,同学们都向后退,生怕被别人捉到。老师说:“开始,从前……竹子!”同学们把自己的右手食指贴到身上,左手去抓另一个同学的右手食指。“啊,抓到了。”随着一声叫喊,我们看到一个同学被淘汰了。接着,又有几个同学被淘汰了。我是第四个被淘汰的。
接着,一个又一个,一个又一个地被淘汰,直到最后两人在PK。最后,那个高个子同学输了,矮个子的同学胜利,得了冠军。
于是,老师说:“我和你来一场,支持我的举手。”两三个人举起了手。老师说:“选个人当裁判,选了一个女生,这令人我很不满意。虽然,我不满意,但我注重的.还是比赛。”
比赛开始了,裁判员说:“从前有一个人,他特别喜欢……竹子。”老师没抓到同学。接着,裁判员又说:“从前,在一个竹子!”老师又没抓住。这时,老师“呵呵”地笑了起来。老师说:“你是同学组的冠军,我是老师组的冠军。”
从这个游戏中,我知道了任何时候都要集中注意力,否则,要被人家抓住的。
在我的身边,也有许多自控能力很差的人。
我们老师布置的作业很少,一小时是绝对能写完的,常常只用二十分钟就写好了。可是,每天早晨总有好几个同学抱怨作业太多了,总是写到夜里才能写好。我感到很奇怪,明明作业很少,为什么会写到那么晚?我去问了我班的几个“作业困难户”,才知道,他们总是回到家先玩,再写作业。常常玩着玩着就把时间给玩没了,作业质量又差,睡眠时间也大大缩短了,我决定帮帮他们。老师布置作业很早,在学校利用课余时间,是绝对能在学校完成的。我把他们看住,不让他们出去玩,专心写作业。一开始,他们一个个头伸长了往外看,我拿着“教棒”“啪啪啪”像是打地鼠一样。他们几个吃了亏便不敢动了,乖乖地写作业。到了中午,他们的作业就写好了。一个个如飞出笼子的小鸟,活蹦乱跳。其实,只要稍微控制一下,就不会再有坏毛病了。
说了这么多都是在说别人的控制能力有多差。其实,身为优等生的我,也有些不自觉。
以往,每周五晚,我都会把作业写好了才去玩。可是,到了六年级,作业越来越多,每周五一到,我总是不想写作业,常常是写了数学和英语,把语文和作文两座“大山”留到周六上午再“搬”。这周五打算努力一把,把作业写好再玩。我先把作文写好,写语文试卷时,正面很简单,我写好了打算把反面的'阅读留到明天做。我想,反正明天时间多的是,明天再写吧。又想,反正都写到这了,再花几分钟不就做好了吗。我终于又拿起了笔,这次阅读很简单,我很快就写好了。写完后一身轻松,我终于战胜了自己。
有自我控制力,是成功的关键。其实,只要战胜自己的心理,控制一下自己,就可以成功,就是一个有自我控制力的人。
© 2022 zuowencangku.com,All Rights Reserved.