文档详情

清华大学C++课件7.ppt

发布:2015-09-19约1.03万字共52页下载文档
文本预览下载声明
无限循环 发生无限循环的场合 循环体内没有改变循环变量值的语句 即使改变循环变量值,也不能否定循环条件 循环体内没有能够强制终止循环执行的语句或命令 无限循环的后果 程序永远不会结束,大多数时有害,编程时一般应避免 例外情况:循环体内有专门控制循环终止的语句或命令 命令格式:满足某种条件下使用 break 语句,终止循环 当循环: #define N 1 …… while ( N ) { cout “ welcome to Tsinghua \n”; } #define N 1 …… while ( N - 1 ) { cout “ welcome to Tsinghua \n”; } 例:求两个整数的最小公倍数 分析:假定有 x , y 且 x y,设最小公倍数为 z z 一定大于等于 x z = k x , k = 1, 2, … z 一定会被 y 整除 比如: x=5, y=3 step1: z = x // x=5 5 % 3 != 0 // z % y 不能整除 step2: z = z + x 10 % 3 != 0 // z % y 不能整除 step3: z = z + x 15 % 3 == 0 // z % y 能整除 …… int main() { int x=0, y=0, z=0, w=0; cout “请输入两个整数,用空格隔开:”; cin x; cin y; if ( x y ) // 让 x 表示两者中的大数 { w = x; x = y; y = w; } z = x; // 将一个大数赋给 z while ( z % y != 0 ) // 当z不能被y整除时,就让z累加x z = z + x; cout “最小公倍数为” z endl; return 0; } do-while 循环格式:do{ 循环体 }while(表达式); do-while 循环流程 先执行后判断:先执行一遍循环体(一次迭代),计算表达式的值,表达式为真时重复执行循环体,否则终止循环(循环体至少执行一次) 为保证循环终止,循环体内应有能改变表达式值的语句 4补.6 do-while 循环结构 例:求π的近似值 π ≈ 4 * ( 1 - 1/3 + 1/5 - 1/7 + … ) 令 a 为 1, 3, 5, 7, … b = ±1 c = b / a 表示括号中的每一项 当最后一项的绝对值小于等于10-6时,忽略掉以后的项 …… int main() { int sum=0; // 总项数 float pi=0, a=1.0, b=1.0, c=1.0; do { pi = pi + c; // 累加每一项 sum = sum + 1; a = a + 2.0f; // 计算每一项的分母 b = -b; // 分子变正负号 c = b / a; // 计算每一项 } while ( fabs(c) 1e-6 ); // c的绝对值大于10-6时循环 pi = 4.0f * pi; cout pi= pi endl; // 输出pi cout sum= sum endl; // 输出总项数 return 0; } for 循环格式 for(表达式1; 表达式2; 表达式3) 循环体 for 循环流程 先判断后执行:先执行表达式1(循环初始化),再计算表达式2,以根据其结果决定是否执行一遍循环体,计算表达式3的值(循环再次“初始化”),返回重新计算表达式2的值以确定循环是否终止 4补.7 for 循环结构 递增递减表达式 递增递减表达式的优先级非常高 前缀递增递减 格式:++变量名称; --变量名称; 例一:设 a 为 1,++a 等价于 a = a + 1,a 结果为 2 例二:设 a 为 1,--a 等价于 a = a - 1,a 结果为 0 计算要诀:先递增递减,再参与运算 例三:设 a 为 1,b = ++a
显示全部
相似文档