13_for语句和用for语句构成的循环结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(8)for语句的循环语句可以是空语句。空语句用来实现延 时,即在程序执行中等待一定的时间。如下为延时程序的 例子: for(i=1;i<=1000;i++); 注意以上语句最后的分号不能省略,它代表一个空语句。 例如:用for循环结构来计算1+2+3+…+100。 main() { int i,sum=0; for(i=1;i<=100;i++) sum+=i; printf("%d\n",sum); } 程序运行结果为: 5050
for循环结构是几乎所有高级语言都提供的循 环控制结构。但C语言中的for语句使用最为 灵活,它不仅可以用于循环次数已经确定 的情况,而且可以用于循环次数不确定而 只给出循环结束条件的情况,因而它完全 可以代替while语句和do while语句。
※重点提示:表达式1、表达式2、表达式3都 必须为for语句规定的合法的表达式。
本次课要点:
5.3 for语句和用for语句构成的循环结构
5.3 for语句和用for语句构成的循环结构 5.3.1 for语句构成的循环结构 for语句的一般形式为: for(表达式1;表达式2;表达式3) 循环语句; 以下是几点说明: 1.表达式1一般为赋值表达式,用于进入循环之前 给循环变量赋初值。 2.表达式2一般为关系表达式或逻辑表达式,用于 执行循环的条件判定,它与while、do while循环 中的表达式作用完全相同。 3.表达式3一般为赋值表达式或自增、自减表达式, 用于修改循环变量的值。
5.3.3 有关for语句的说明 (1)for语句的一般形式中的“表达式1”可以省略,即: for(;表达式2;表达式3) 循环语句; 但注意省略表达式1时,其后的分号不能省略。此时,应在 for语句之前给循环变量赋初值。 (2)如果省略表达式2,即: for(表达式1;;表达式3) 循环语句; 则表示表达式2的值始终为真,循环将无终止地进行下去。 例如: for(i=1;;i++) printf("%d",i); 将无限循环输出1,2,3,4,5,6,……
可以看出,此例的结果前两例是完全相同的。显 然,用for语句简单、方便。 ※重点提示:for语句中的表达式可以部分或全部 省略,但两个分号不能省略,且三个表达式均省略 时,循环将会无限制执行,而形成死循环。因此, 编写程序时,在for后面的一对圆括号内,应只含有 能对循环进行控制的表达式,其它的操作尽量放在 循环体内完成。
(3)如果省略表达式3,即: for(表达式1;表达式2;) 循环语句; 此时,也将产生一个无穷循环。因此,程序设计者应另外设法保证循环 能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句 中控制。例如: for(i=1;i<=100;) { sum+=i; i++; } 上述for语句中没有表达式3,而是将表达式3(i++)放在循环语句中, 作用相同,都能使用循环正常结束。注意表达式2后面的分号不能省略。 (4)也可以同时省略表达式1和表达式3,即: for(;表达式2;) 循环语句; 也即省略了循环的初值和循环变量的修改部分,此时完全等价于while 语句。
(5)同时省略表达式1、表达式2和表达式3,即: for(;;) 循环语句; 相当于赋循环变量的初值,循环控制条件始终为真,不修 改循环变量,故循环将无终止地进行下去。 (6)在for语句中,表达式1和表达式3不仅可以使用简单表 达式,也可以使用逗号表达式,即包含一个以上的简单表 达式,中间用逗号间隔。在逗号表达式内按自左至右求解, 整个表达式的值为其中最右边的表达式的值。例如: for(i=1;i<=100;i++,sum=sum+i) 相当于 for(i=1;i<=100;i++) sum=sum+i; (7)在for语句中,表达式一般为关系表达式或逻辑表达式, 但也可以是其他表达式(如字符表达式、数值表达式)。
5.3.2 for循环执行过程
for语句的执行过程是: ① 先计算表达式1的值。 ② 再计算表达式2的值,若其值为真,则 执行循环体一次;否则跳转第⑤步。 ③ 然后计算表达式3的值。 ④ 转回上面第②步。 ⑤ 结束循环,执行for语句下面一个语句。
图5.2 for语句的执行流程图
※重点提示Hale Waihona Puke Baidu在整个for语句 中,表达式1只计算一次, 表达式2和表达式3则可能 计算多次。循环体可能多 次执行,也可能一次都不 执行。