《程序设计》 cs.stu20119 第4章循环控制 重复N次循环 Whil循环 D0.whie循环 循环的中途退出 枚举法 贪婪法 程序设计-1
《程序设计》 cs.sjtu 2011.9 程序设计 - 1 第4章 循环控制 重复N次循环 While循环 Do … while循环 循环的中途退出 枚举法 贪婪法
《程序设计》 cs.stu20119 for循环语句 令格式: 循环控制行 for(表达式1;表达式2;表达式3) 语句 循环体 冷执行过程: >1执行表达式1 >2执行表达式2 >3如果表达式2的结果为“true”,则执行循环体 和表达式3,然后回到2,否则fo语句执行结束2
《程序设计》 cs.sjtu 2011.9 程序设计 - 2 for循环语句 ❖ 格式: for(表达式1;表达式2;表达式3) 语句 ❖ 执行过程: ➢ 1.执行表达式1 ➢ 2.执行表达式2 ➢ 3.如果表达式2的结果为“true”,则执行循环体 和表达式3,然后回到2,否则for语句执行结束 循环体 循环控制行
《程序设计》 cs.stu20119 for循环语句续 令作为计数循环,可以理解为 for(循环变量赋初值;循环条件;循环变量增值) 符合循环条件的执行语句 冷循环体所有语句的一次完全执行称为一个循 环周期 令循环体可以是复合语句或空语句 程序设计
《程序设计》 cs.sjtu 2011.9 程序设计 - 3 for循环语句 续 ❖ 作为计数循环,可以理解为 for(循环变量赋初值;循环条件;循环变量增值) 符合循环条件时的执行语句 ❖ 循环体所有语句的一次完全执行称为一个循 环周期 ❖ 循环体可以是复合语句或空语句
《程序设计》 cs.stu20119 逗号表达式 格式:表达式1,表达式2,…表达式n 冷执行过程:先执行表达式1,再执行表达式 2,…,再执行表达式n,整个表达式的计算 结果为最后一个表达式的值 令逗号运算符的优先级是所有运算符中最低的 如a的初值为0,则表达式 a+=1,a+=2,a+=3,a+=4,a+=5 的结果为15 程序设计-4
《程序设计》 cs.sjtu 2011.9 程序设计 - 4 逗号表达式 ❖ 格式:表达式1,表达式2,…,表达式n ❖ 执行过程:先执行表达式1,再执行表达式 2,… ,再执行表达式n,整个表达式的计算 结果为最后一个表达式的值 ❖ 逗号运算符的优先级是所有运算符中最低的 如a的初值为0,则表达式 a += 1, a += 2, a += 3, a += 4, a += 5 的结果为 15
《程序设计》 cs.stu20119 冷有了逗号表达式,从1加到100的问题就 可以只用一个语句: for(i=1,s=0;iK=100;++)s+=i; 或将所有的初始化都放在循环外,即 i=1;s=0; for(;i<=100;++i)s+= 建议还是用 s=0 for(i=1;i<=100;++i)s+= 程序设计-5
《程序设计》 cs.sjtu 2011.9 程序设计 - 5 ❖ 有了逗号表达式,从1加到100的问题就 可以只用一个语句: for (i=1, s=0; i<=100; ++i) s += i; 或将所有的初始化都放在循环外,即 i=1; s=0; for ( ; i<=100; ++i) s += i; ❖ 建议还是用 s=0; for (i=1; i<=100; ++i) s += i;
《程序设计》 cs.stu20119 for循环的进一步讨论续 冷表达式2也不一定是关系表达式。它可以是逻辑表 达式,甚至可以是算术表达式。当表达式2是算术 表达式时,只要表达式的值为非,就执行循环体, 表达式的值为0时退出循环。 冷如果表达式2省略,即不判断循环条件,循环将无 终止地进行下去。 无终止的循环称为“死循环 冷最简单的死循环是for(;) 要结束一个无限循环,必须从键盘上输入特殊的 命令以中断程序执行并强制退出 程序设计-6
《程序设计》 cs.sjtu 2011.9 程序设计 - 6 for循环的进一步讨论 续 ❖ 表达式2也不一定是关系表达式。它可以是逻辑表 达式,甚至可以是算术表达式。当表达式2是算术 表达式时,只要表达式的值为非0,就执行循环体, 表达式的值为0时退出循环。 ❖ 如果表达式2省略,即不判断循环条件,循环将无 终止地进行下去。 ❖ 无终止的循环称为“死循环” ❖ 最简单的死循环是 for (;;); ❖ 要结束一个无限循环,必须从键盘上输入特殊的 命令以中断程序执行并强制退出
《程序设计》 cs.stu20119 For循环的进一步讨论续 表达式3也可以是任何表达式,一般为赋值表 达式或逗号表达式。表达式3是在每个循环周 期结束后对循环变量的修正。表达式3也可以 省略,此时做完循环体后直接执行表达式2 如从1加到100,可以写为 s=0;for(i=1;i<=100;){s+=i,计+;}或 S=0;for(i=l;i<=100;s+=i,i++); 程序设计-7
《程序设计》 cs.sjtu 2011.9 程序设计 - 7 For循环的进一步讨论 续 ❖ 表达式3也可以是任何表达式,一般为赋值表 达式或逗号表达式。表达式3是在每个循环周 期结束后对循环变量的修正。表达式3也可以 省略,此时做完循环体后直接执行表达式2。 ❖ 如从1加到100,可以写为 s=0; for (i=1; i<=100; ) { s += i, i++;} 或 s=0; for (i=1; i<=100; s += i, i++) ;
《程序设计》 cs.stu20119 For循环实例 小求函数f(x)=x2+5x+1在区间a,b之间的定积分 令实现思想:函数与x轴围成的区域的面积。定积分 可以通过将这块面积分解成一连串的小矩形,计 算各小矩形的面积的和而得到 a 程序设计-8
《程序设计》 cs.sjtu 2011.9 程序设计 - 8 For循环实例 ❖ 求函数 在区间[a, b]之间的定积分 ❖ 实现思想:函数与x轴围成的区域的面积。定积分 可以通过将这块面积分解成一连串的小矩形,计 算各小矩形的面积的和而得到 ( ) 5 1 2 f x = x + x + ( ) 5 1 2 f x = x + x + a b
int mainO 《程序设计》 cs.stu20119 double a, b dIt, integral =0 cou>a>>b cou dIt: for(double x=a dlt /2;x< b;x+= dlt integral +=(x*x+5*X+1)*dIts cout<"积分值为:"<< integral<<end return 0 程序设计-
《程序设计》 cs.sjtu 2011.9 程序设计 - 9 int main() { double a, b, dlt, integral = 0; cout > a >> b; cout > dlt; for (double x = a + dlt / 2; x < b; x += dlt) integral += (x * x + 5 * x + 1) * dlt; cout << "积分值为:" << integral << endl; return 0; }
《程序设计》 cs.stu20119 第4章循环控制 重复N次循环 Whil循环 D0.whie循环 循环的中途退出 枚举法 贪婪法 程序设计-10
《程序设计》 cs.sjtu 2011.9 程序设计 - 10 第4章 循环控制 重复N次循环 While循环 Do … while循环 循环的中途退出 枚举法 贪婪法