第十一课 for循环(3)---循环变量的变化
2015-10-30 16:11
441 查看
第十一课 for循环(3)---循环变量的变化
【for循环流程】
前面介绍的for循环语句,学习了简单控制循环次数的格式,一般形式为:
for( int i=0; i< N ; i++ )
语句/复合语句;
在学习了if语句中的逻辑表达式概念后,再来分析for语句能更加明白它的工作原理。for语句的控制结构由2个分号“;”分为三部分:
for (第1部分
;第2部分 ;第3部分
)
语句/复合语句;
通常:
l 第1部分是循环变量定义和赋初始值(也叫初始化)的位置。
l 第2部分是逻辑表达式,是循环执行的条件部分。一旦表达式为假,循环结束。
l 第3部分一般是循环变量修改语句。
for语句的流程示意图:
如果循环3次,执行的次序为:
l 第一部分--- (只执行1次)
l 第2部分---语句---第3部分--- (第1个循环)
l 第2部分---语句---第3部分---
(第2个循环)
l 第2部分---语句---第3部分--- (第3个循环)
l 第2部分--- (表达式为假,结束循环)
例如语句“for (int i=0; i < 3;i++ ) cout << i<<endl;”的执行过程为:
l i初始化为0,
l “0<3”为真
--- 输出0 --- i增加1 --- i=1。
l “1<3”为真
--- 输出1 --- i增加1 --- i=2。
l “2<3”为真
--- 输出2 --- i增加1 --- i=3。
l “3<3”为假
--- 结束循环。
参见演示程序:for演示程序11A.exe
【for循环变化】
C++语言中for语句的3个部分可以灵活变化,功能强大。下面简单介绍2种变化方法。
(1)for语句的第1部分变化。
循环变量初始化的值不一定是0,可以是任意值。
例题11.1:输出所有是7的倍数的2位数:14,21,
… ,98,每个数一行
分析:
题目描述中有两个关键点:
1. 所有2位数 ---
10,11,12,…,99
2. 7的倍数 ---除以7的余数为0
解题方法:用for语句的循环变量列举所有的2位数,再用if语句把7的倍数的数挑选出来。
【拓展知识】
“把所有可能的数都列举出来,再一一判断,挑选出符合要求的数值。”这种方法在程序设计中经常使用,称为:枚举算法。
(2)for语句的第3部分变化。
循环变量的改变不一定是增加1,也可以是其它修改。常见的修改形式有:
例题11.2:画下面图形。图中最小边长是10,最大边长是200,边长每次增加10。
例题11.3:找出下面数列“3 7
15 31 …”的规律,打印前面不超过10000的所有项。
分析:
后一项是前一项乘2加1,所以i的变化表达式为:i
= 2*i + 1。
【练习】
一、填空题。根据题目的任务,填空完善程序。
二、编程题。
练习11.5:编程画出下面图形,三角形边长每次减少一半。
练习11.6:编程画出下面图形,正方形边长每次减少20。
【学习目标】
(1) 理解for语句各个部分的作用和执行先后次序的流程图,。
(2) 掌握for语句的循环变量初始化。
(3) 学会用用各种逻辑表达式(有==,<,<=,>,>=等)作为循环结束条件。
(4) 掌握for语句的循环变量的多种修改方式。
【for循环流程】
前面介绍的for循环语句,学习了简单控制循环次数的格式,一般形式为:
for( int i=0; i< N ; i++ )
语句/复合语句;
在学习了if语句中的逻辑表达式概念后,再来分析for语句能更加明白它的工作原理。for语句的控制结构由2个分号“;”分为三部分:
for (第1部分
;第2部分 ;第3部分
)
语句/复合语句;
通常:
l 第1部分是循环变量定义和赋初始值(也叫初始化)的位置。
l 第2部分是逻辑表达式,是循环执行的条件部分。一旦表达式为假,循环结束。
l 第3部分一般是循环变量修改语句。
如果循环3次,执行的次序为:
l 第一部分--- (只执行1次)
l 第2部分---语句---第3部分--- (第1个循环)
l 第2部分---语句---第3部分---
(第2个循环)
l 第2部分---语句---第3部分--- (第3个循环)
l 第2部分--- (表达式为假,结束循环)
例如语句“for (int i=0; i < 3;i++ ) cout << i<<endl;”的执行过程为:
l i初始化为0,
l “0<3”为真
--- 输出0 --- i增加1 --- i=1。
l “1<3”为真
--- 输出1 --- i增加1 --- i=2。
l “2<3”为真
--- 输出2 --- i增加1 --- i=3。
l “3<3”为假
--- 结束循环。
参见演示程序:for演示程序11A.exe
【for循环变化】
C++语言中for语句的3个部分可以灵活变化,功能强大。下面简单介绍2种变化方法。
(1)for语句的第1部分变化。
循环变量初始化的值不一定是0,可以是任意值。
例题11.1:输出所有是7的倍数的2位数:14,21,
… ,98,每个数一行
分析:
题目描述中有两个关键点:
1. 所有2位数 ---
10,11,12,…,99
2. 7的倍数 ---除以7的余数为0
解题方法:用for语句的循环变量列举所有的2位数,再用if语句把7的倍数的数挑选出来。
样例程序11.1 | 图形 |
//prog:样例程序11.1 //author: teacher //2015.10.28 int main() { for(int i=10; i<100; i++) if( i%7==0) cout<<i<<endl; return0; } | ====运行中... ==== 14 21 28 35 42 49 56 63 70 77 84 91 98 ====运行结束 ==== |
“把所有可能的数都列举出来,再一一判断,挑选出符合要求的数值。”这种方法在程序设计中经常使用,称为:枚举算法。
(2)for语句的第3部分变化。
循环变量的改变不一定是增加1,也可以是其它修改。常见的修改形式有:
形式 | 功能 | 举列 |
i++ | i增加1 | i=5; i++; //i变为6 |
i-- | i减少1 | i=5; i--; //i变为4 |
i += a | i增加a | i=5; i+=3; //i变为8 |
i -=a | i减少a | i=5; i -= 3; //i变为2 |
i *=a | i乘a | i=5; i *= 3; //i变为15 |
i /=a | i除a | i=5; i/=2; //i变为2 |
i =运算表达式 | i取表达式的值 | i=5 i=3+2*i; //i变为13 |
样例程序11.2 | 图形 |
//prog:样例程序11.2 //author: teacher //2015.10.28 int main() { for(int i=10; i<=200; i+=10) pen.fd(i).rt(90); return0; } |
15 31 …”的规律,打印前面不超过10000的所有项。
分析:
后一项是前一项乘2加1,所以i的变化表达式为:i
= 2*i + 1。
样例程序11.3 | 图形 |
//prog:样例程序11.3 //author: teacher //2015.10.28 int main() { for(int i=3; i<=10000; i=1+2*i) cout<< i<<" "; return0; } | ====运行中... ==== 3 7 15 31 63 127 255 511 1023 2047 4095 8191 ====结束运行 ==== |
一、填空题。根据题目的任务,填空完善程序。
题目 | 程序 |
练习11.1 输出数列:3 4 5 6 … 88。相邻两个数之间用一个空格隔开。 | //prog:练习11.1 //author: teacher //2015.10.29 int main() { for(int i= ① ; i<=88; i++) cout<< i<<" "; return0; } |
练习11.2 输出数列:100 95 90 85 … 10 5。相邻两个数之间用一个空格隔开。 | //prog:练习11.2 //author: teacher //2015.10.29 int main() { for(int i=100; i>=5; ② ) cout<< i<<" "; return0; } |
练习11.3 输出数列:2 4 8 16 … 1024。相邻两个数之间用一个空格隔开。 | //prog:练习11.3 //author: teacher //2015.10.29 int main() { for(int i=2; i<=1024; ③ ) cout<< i<<" "; return0; } |
练习11.4 输出数列:4, 5, 7, 11, 19, … , 8195。相邻两个数之间用一个空格隔开。 | //prog:练习11.4 //author: teacher //2015.10.29 int main() { for(int i=4; i<=8195; ④ ) cout<< i<<" "; return0; } |
练习11.5:编程画出下面图形,三角形边长每次减少一半。
练习11.6:编程画出下面图形,正方形边长每次减少20。
【学习目标】
(1) 理解for语句各个部分的作用和执行先后次序的流程图,。
(2) 掌握for语句的循环变量初始化。
(3) 学会用用各种逻辑表达式(有==,<,<=,>,>=等)作为循环结束条件。
(4) 掌握for语句的循环变量的多种修改方式。
相关文章推荐
- 第11章 对话框
- 调试 vs2010 assert()断言对话框的使用
- 栈的应用之表达式求值(算符优先法)
- java调用批处理(doc)执行多条命令
- uploadify+jcrop实现头像上传裁剪功能
- 堆
- 第20章 多任务和多线程
- PL/SQL下载安装
- 《java8函数式编程》——使用函数式编程重构代码
- 第一天
- ios动画
- <iOS>系统提供的dispatch方法
- 二分查找
- Scrapy--1安装和运行
- 既然决定学习python就开始记录一些问题吧
- 欢迎使用CSDN-markdown编辑器
- 【C语言学习】《C Primer Plus》第13章 文件输入/输出
- 事件分发机制
- Spring 和 MyBatis 环境整合
- apk反编译