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;/*满足一组同余式的判别*/
于是,三道光射过。
“这。。这是哪儿呀??”畅儿说道。
“这可能是第一关。”冰幻。
“第一关?”我说道。
“恩/”冰幻。
这时,一个声音响了起来:“你们好呀!”一位仙子从天而降,这位仙子可真美丽!
看!她那绿色的纱衣,长长的秀发,中间戴着绿色的发丝。真是闭月羞花!
“你是?”畅儿。
“你好!我叫绿柔。”绿柔仙子彬彬有礼地说道。
“绿柔?你的名字真好听呀!”我说道。
“你们?这是要去人间?”绿柔。
“恩恩!”我说。
“可是,当年,玉帝为了避免仙子下凡谈情说爱,就让这儿有了三关艰难。只要
你们通过,封印可解,但是,如果不通过,就会葬身此地。”绿柔。
“啊呀!怕死了!”畅儿:“咱们还是不去人间了吧?”
“畅儿姐姐,这小小的三关怎能难得住我们呢?我们一定要试一试!”我说道。
“恩!”畅儿。
“恩!”绿柔点点头:“这一关是考验你们的感情,若是你们团结合作,就能通
过!”
“这难不着我们的!”可爱的畅儿抬起头来天真地说道。
这时,三人脚下的石地一塌,大家便掉了下去。
“啊呀,这是哪?”畅儿。
“这可能是考我们团结的地方吧!”冰幻说。
“恩!”我说。
从远方传来绿柔柔柔的声音:“这是考验你们的第一关,只要你们在1分种之内,一起离开这个地方,你们
就通过,还是你们出不去,你们就会死。”
“啊?”畅儿惊讶地说:“我们该怎么出去呢?”
“看!上面有一个缺洞!”灵素把纤纤玉手往上一指。
“哟!”冰幻:“真有啊!我们可以这样,两个人一起施展法术,让一个人上去。”
“但是,最后一个人不就死了吗?”畅儿。
“恩/”冰幻:“你们两个上去吧!”
“不!你们两个上去!”我焦急地说/
“不!还是你们两个上去吧!”畅儿。
“哎呀,别争了!”我说:“再不快点做决定我们都得呆在这了。只剩10秒了。”
10,9,8,
把握时间,我和冰幻趁畅儿不注意,把她送了上去。
“你上去吧!我施法!”我说道。
“不!公主,死到临头了,其实我。”冰幻说。
冰幻还没来得及说,他就施法把我送了上去,然后石洞塌了。
“冰幻哥哥!”畅儿大叫道。
“冰幻哥哥为什么这么傻?”我说:“他为什么不让我牺牲。”我流下了泪。
“冰幻哥哥,你要是能复生,我以后再也不跟你顶嘴了!”畅儿。
“真的?”一个人出现了,啊!冰幻!
“呵呵,我没死,绿柔说了,这是考验我们的'团结力,所以,我当然不会死。”冰幻。
“太好了!”我高兴地说。
这时,一个绿色的身影飞来了,绿柔。
“恭喜你们通过了第一关,但是,第二关,很艰难,只有你们其中一个人去。那是当年玉帝要考验下凡
的仙子是不是动了情。”绿柔。
“怎么个过关法?”冰幻。
“很简单,只要进里面把心爱的人***了,就通过,记住,那个心爱的人是假的,如果不***她,她就会***你!”
“啊?”畅儿。
“那谁去呢?”我说。
“当然是冰幻将军去咯!”绿柔:“他对一个人动了情。”
“哎呀,他对我们的公主动了情!”畅儿。
“好啦!别说了,我要走了,放心,我会成功的!”冰幻。
绿柔开始施展法力,把冰幻送到了一个地方。
© 2022 xuexicn.net,All Rights Reserved.