for循环程序设计(0909NITL).ppt

上传人:max****ui 文档编号:6340490 上传时间:2020-02-23 格式:PPT 页数:29 大小:440.50KB
返回 下载 相关 举报
for循环程序设计(0909NITL).ppt_第1页
第1页 / 共29页
for循环程序设计(0909NITL).ppt_第2页
第2页 / 共29页
for循环程序设计(0909NITL).ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
1 第5章for循环程序设计 2 5 1for循环结构 C语言中的for循环语句比较复杂些 也比较灵活 功能较强 虽然主要用于定数循环 但也可以用于不定数循环 它完全可以替代while循环 1 for循环语句的一般形式 for 表达式1 表达式2 表达式3 循环体 3 for 表达式1 表达式2 表达式3 循环体 设置循环变量初值 判断表达式 循环变量增值 4 例5 1 求100之内各数之和 includeintmain inti sum 0 for i 1 i 100 i sum i printf 1 2 100 d sum return0 5 例 把100 200之间的不能被3整除的数输出 main intn for n 100 n 200 n if n 3 0 continue 能被3整除的数 不打印 printf 5d n 当然函数体也可改成 if n 3 0 printf d n 使用Continue仅是为了说明其的语法作用 6 说明 表达式缺省的for 语句 for 语句中的三个表达式可以省略其中一个 二个 甚至三个 但无论省略几个 其中的二个分号不能省 如果在for语句之前 给循环变量已赋值 表达式1可省去 分号不能省 如 sum 0 i 1 for i 100 i sum sum i 表达式1可省去 7 3 如果表达式2省略 C编译程序认为其值恒为真 无限循环下去 如 for i 1 i sum sum i 2 表达式3也可省去 如 for i 1 i 100 sum sum i i 可把变量增值部分放在循环体内 可在循环体内加break语句跳出循环 表达式3可省去 表达式2可省去 8 4 甚至三个表达式都可省略 for 语句 例 intmain inti 1 sum 0 for sum i i if i 10000 break 这种无限循环可用break语句来终止循环 避免产生死循环 9 补充 逗号运算符 顺序运算符 级别最低的一种 用它将二个表达式联起来 逗号表达式的一般形式 表达式1 表达式2 如 a 3 5 a a 4 逗号表达式先求解3 5 得a的值为15 然后求解第二表达式a 4 得60 求解过程是 先求解表达式1 再求解表达式2 整个逗号表达式的值为表达式2的值 10 一般形式还可扩展 表达式1 表达式2 表达式n整个表达式的值为表达式n的值 注 a 在很多情况下 使用逗号表达式的目的只是想得到各个表达式的值 并非一定需要得到或使用整个表达式的值 b 并非任何出现逗号的地方都是逗号运算符 如 printf d d d a b c 其中的逗号就不是 11 5 含逗号运算符的for语句for语句中 表达式1 表达式3可以使用逗号运算符 如 for i 1 j 20 i j i j 两个或两个以上的变量共同实现对循环的控制 注 有时各表达式也可以是与循环无关的语句 12 例5 2输入一个1 10的自然数 求这个数的阶乘 includeintmain inti n s 1 scanf d ch5 5 2 c 13 例5 3输入一个正整数 逆序输出 includeintmain intnum intdigit printf Inputanumber t scanf d 14 例5 4输入不多于10个实数 求这些数的和及其中正数之和 若不足10个数 以0为结束标志 include includeintmain floatsum psum x inti 1 15 for sum psum 0 0 i 0 i 10 i scanf f ch5 5 4 c 16 例5 5计算输入一行字符串的字符个数 includeintmain intn 0 charcha1 printf 输入一行字符串 n for cha1 getchar n n printf 共有字符 d个 n n return0 ch5 5 5 c 17 对于for语句的进一步说明 1 表达式1可以是设置变量初值的赋值表达式 也可是与循环变量无关的其它表达式 如 for sum 0 i 100 i sum sum i 2 表达式2一般是关系表达式或逻辑表达式 但也可以是其它类型表达式 只要其值为非零 就执行循环体 如 for i 0 c getchar n i c 不断输入字符 将ASCII码累加 直到输入一个换行符 18 3 for循环的条件检查总是在循环开始前进行的 如果一开始条件为假 为零 则循环一次也不执行 main intx y 10 for x 10 x 10 y printf d y printf d x 19 5 当for语句的循环体是空语句时 则成为空循环体的for语句 利用它可以实现某些特殊功能 比如产生时间延迟等 如下例 for t 0 t value t 空循环体 20 5 2循环嵌套 for语句一般用于具有明确循环次数的情况 如果事先不知道准确的循环次数 只知道循环条件 一般用while或dowhile语句 循环是可以嵌套的 循环嵌套是指一个循环体内又可包含另一个完整的循环称为循环嵌套 里面的循环又可嵌套另一个循环 叫多层循环的嵌套 21 已知的三种循环 while do while for 可以相互嵌套 如 while for dowhile while 注 但循环嵌套不允许交叉 22 例 问程序输出的结果 main inti 1 a 0 for i 5 i do i a while i 3 i printf a d i d n a i 23 例5 6 打印一张九九乘法表 includeintmain inti j for i 1 i 10 i for j 1 j i j printf 2d d 3d i j i j printf n return0 ch5 5 6 c 外循环控制行数 内循环控制每行的输出数据 24 例5 7 打印如下一张图形 includeintmain inti j k for i 0 i 5 i for j 0 j i j printf for k 0 k 5 i k printf printf n return0 ch5 5 7 c 外循环控制行数 控制每行的定位 控制每行输出的 号个数 25 例 找出所有的三位数 它和它的各位数字的立方和正好相等 例如 153 13 53 33 设所求的三位数 其百位数字是i 十位数字是j 个位数字是k 显然应满足如下表达式 i i i j j j k k k 100 i 10 j k main inti j k for i 1 i 9 i for j 0 j 9 j for k 0 k 9 k if i i i j j j k k k 100 i 10 j k printf d d d n i j k 程序运行结果 153370371407 26 第5章For循环程序设计结束 27 问程序输出 A x 4 B x 8 C x 6 D x 12 include stdio h main inti j x 0 for i 0 i 2 i x for j 0 j 3 j if j 2 continue x x printf x d n x ch5 ex10 c 外层for循环执行二次 每次外循环时 内循环要执行4次 每次内循环时 当j 1 或j 3时 内循环的x 不执行 i 0i 0i 0i 0i 1i 1i 1i 1j 0j 1j 2j 3j 0j 1j 2j 3x 2x 2x 3x 4x 6x 6x 7x 8 明确语句的从属关系 28 注 外层for循环执行二次 每次外循环时 内循环要执行4次 每次内循环时 当j 1 或j 3时 内循环的x 不执行 29 例 一球从100米高度自由落下 每次落地后都弹回原高度一半落下 求它在第10次落地时 共经过多少米 第10次反弹多高 main floatsn 100 hn sn 2 intn for n 2 n 10 n sn sn 2 hn hn hn 2 printf fm n sn printf fm n hn
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!