for语句的一般形式:
for([表达式1];[表达式2];[表达式3])
<语句>
其中:表达式1称为初始化表达式,用于给出循环初值;表达式2称为条件表达式,用于给出循环条件;称为修正表达式,用于进行循环变量值的修正,流程图如图4-3所示。
提示:
①for语句可以转换成while结构:
②for语句的三个控制表达式可以灵活应用,使得for语句形式多种多样。
比如以下4种形式均实现同一功能,即在屏幕上输出:ABCDEFGHIJ形式1(for语句标准形式):
图4-3 for循环的执行流程
形式2(<表达式1>为空语句):
形式3(<表达式1>和<表达式3>均为空语句):
形式4(循环体为空语句,<表达式3>为逗号表达式):
注意:由于C语言的表达式形式丰富,在使用for语句的三个表达式时要特别注意运算次序及各自计算的结果。此外,程序还可使用空循环来延长时间。所谓空循环,即没有循环体的循环结构:for(t=0;t<time;t++);for循环可以省略三个表达式,但是分号(;)不可省略。
即for(;;)
<语句>此时的for循环是无限循环形式。
【例4.6】韩信点兵与中国剩余原理。
相传汉高祖刘邦问大将军韩信统御的士兵具体有多少人?韩信答道:“每3人一列余1人,5人一列余2人,7人一列余4人,13人一列余6人,17人一列余2人,19人一列余10人。”汉高祖听后一头雾水,不知所措。假设你是刘邦的智囊,你能帮汉高祖解决这个问题,算出韩信至少统御了多少士兵吗?
这道难题转化为数学问题为:设一个正整数,被3除余数为1,被5除余数为2,被7除余数为4,被13除余数为6,被17除余数为2,被19除余数为10,求出这类数中的最小值。因此,我们可以从最小的自然数开始,一个一个地累加,如果它满足条件,就结束循环。
韩信点兵程序:
程序运行得:
韩信统御的士兵最少有425 002人。
结合案例导读和本节循环结构的引入知识,总结如下:
1.积沙成塔,集腋成裘。量变才能引发质变。日常的学习和生活中,我们要注重积累。积累点滴流水能成为江河,积累点滴知识能成为圣哲。
2.while语句和do…while语句中while后仅一个分号的区别,功能却相差甚远。因此工作和学习都需要细致严谨的品质。(www.daowen.com)
1.语句while(!z)中的!z等价于( )。
A.z=0 B.z!=0 C.z!=1 D.!z
2.C语言中( )。
A.不能使用do…while语句构成的循环
B.do…while语句构成的循环,必须使用break语句才能退出
C.do…while语句构成的循环,当while语句中的表达式为零时结束循环
D.do…while语句构成的循环,当while语句中的表达式不为零时结束循环
3.C语言中while循环和do…while循环的区别是( )。
A.do…while的循环体至少无条件执行一次
B.while的循环控制条件比do…while的循环控制严格
C.do…while的循环语句不能是复合语句
D.while循环和do…while循环都需要先判断循环条件
4.for循环的描述中,正确的是( )。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体,后判断表达式
C.for循环中不能用break语句退出循环
D.for语句的循环体语句中可以包含多条语句,但必须用花括号括起来
5.下列程序片段( )。
A.是死循环 B.循环可执行两次 C.循环执行一次 D.有语法错误
6.下列循环中不是死循环的是( )。
7.以下语句的输出结果为( )。
A.012 B.0124 C.01234 D.没有输出结果
8.以下能正确计算1×2×3×…×10的程序段是( )。
9.编程输出1~80能被5或者7整除的整数。
10.计算1~1 000的奇数之和与偶数之和。
11.编程输出ASCII码为0~127的所有字符。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。