




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4 1C语句概述4 2顺序结构4 3分支结构4 4循环结构4 5goto语句与标号 第四章程序控制结构 4 1C语句概述C语句可以分为以下5类 1 控制语句 9种 if else 如 if x y z x elsez y for 如 for i 1 i 100 i sum sum i while do while continue break switch goto return 2 函数调用语句 由一次函数调用加一个分号构成 如 printf ThisisaCstatement 3 表达式语句 由一个表达式加一个分号构成 如 a 3 i i 1 i x y 注意 a 3是一个赋值表达式 C语言把 作为运算符处理 因此 它与 一样可以构成赋值表达式 并且出现在表达式可以出现的场合 例如 if a b 0 t a 是合法的 但if a b 0 t a 是错误的 4 空语句 5 复合语句 用 把一些语句括起来 如 z x y t z 100 printf f t 4 2顺序结构所谓顺序结构程序就是按书写顺序执行的语句构成的程序段 输入三角形的三条边长 求三角形的面积 includemain floata b c s area scanf f f f 4 3分支结构4 3 1if结构1 if语句的三种形式 1 if 表达式 语句例如 if x y printf d x 2 if 表达式 语句1else语句2例如 if x y printf d x elseprintf d y 3 if 表达式1 语句1elseif 表达式2 语句2elseif 表达式3 语句3 elseif 表达式m 语句melse语句n 例如 if number 500 cost 0 15 elseif number 300 cost 0 10 elseif number 100 cost 0 075 elseif number 50 cost 0 05 elsecost 0 说明 1 if后面的 表达式 一般为逻辑表达式或关系表达式 也可以是任意的数值类型 2 else子句不能作为语句单独使用 它必须与If配对使用 3 在if和else后面可以只含一个操作语句 以 结束 也可以有多个操作语句 但必须用 将几个语句括起来构成一个复合语句 外面不要加分号 例如 main floata b c t scanf f f f 2 if语句的嵌套一般形式如下 if if 语句1else语句2elseif 语句3else语句4注意 else总是与它上面的最近的if配对 if if 语句1 elseif 语句2else语句3一般if与else的数目应相同 如果不同 可以加花括号来确定它们的配对关系 4 3 2switch语句switch语句是多分支选择语句 它的一般形式如下 switch 整型或字符表达式 case常量表达式1 语句1 break case常量表达式2 语句2 break case常量表达式n 语句n break default 语句n 1 当仅当只有一个case语句时 可省略如 switch grade case A printf 85 100 n case B printf 70 84 n case C printf 60 69 n case D printf 60 n default printf error n 说明 1 switch后的 表达式 只能为整型或字符类型 2 当表达式的值与某一个case后面的常数表达式 不含变量 的值 不能为float型 相等时 就执行此case后的语句 若所有的case中的常数表达式的值都没有与表达式的值匹配 就执行default后的语句 3 case常数表达式 只是起语句标号作用 并不是在该处进行条件判断 常数表达式的值必须互不相同 否则会出错 在执行switch语句时 根据switch后面表达式的值找到匹配的入口标号 就从此标号开始执行下去 如上面的例子中 若grade的值等于 A 则连续输出 85 10070 8460 69 60error 4 要使执行一个case分支后跳出switch结构 可以用一个break语句来达到此目的 case后面可以包含一个以上语句 可不必用花括号括起来 如 switch grade case A printf 85 100 n break case B printf 70 84 n break case C printf 60 69 n break case D printf 60 n break default printf error n switch语句也可以嵌套 即在语句中各case项的语句组中可以包含另外的switch语句 此时switch结构中的break语句将只会使程序退出该语句所在那一层switch结构 如 main inta 0 b 1 switch a case0 printf a 0 switch b case0 printf b 0 break case1 printf b 1 break case2 printf b 2 case1 printf a 1 default printf n 运行结果 a 0b 1a 1 4 4循环结构4 4 1当型循环 前判定循环 1 while语句一般形式为 while 表达式 语句当表达式为非0值时 执行while语句中的内嵌语句 即先判断表达式 后执行语句 当循环体包含多个语句时 应该用花括号括起来 如 include stdio h 统计从键盘输入的字符个数 main intcounter 0 while getchar n counter printf 字符数为 d n counter 又如 include stdio h 求键盘输入的整数的最高位数字 main intd 0 printf 请输入一个整数 9 scanf d 2 for语句一般形式为 for 表达式1 表达式2 表达式3 语句它的执行过程如下 求解表达式1 表达式2 语句 求解表达式3 For语句的下面语句 假 真 上述for语句可以改写为while循环的形式 表达式1while 表达式2 语句表达式3 for语句最简单的应用形式为 for 循环变量赋初值 循环条件 循环变量增值 语句例如 for i 1 i 100 i sum sum i 说明 1 for语句中 表达式1 表达式2 表达式3 均可以省略 但分号不能省略 2 如果 表达式2 省略 则认为表达式2的值始终为真 如 for i 1 i sum sum i 相当于 i 1 while 1 sum sum i i 3 表达式1 和 表达式3 可以与循环变量有关 也可以无关 还可以是逗号表达式 自左至右顺序求解 如 for sum 0 i 1 i 100 i sum sum i 4 表达式2 一般是关系表达式或逻辑表达式 也可以是其它表达式 如 for i 0 c getchar n i c 其作用是不断输入字符 将它们的ASCII码相加 直到输入 换行 又如 for c getchar n printf c c 注意输出方式 4 4 2直到型循环 后判定循环 1 do while语句一般形式为 do循环体语句while 表达式 先执行一次循环体语句 若有多条 则必须用 括起来 然后判断表达式 当表达式的值为非0时 返回重新执行循环体语句 如此反复 直到表达式的值等于0为止 如 main inti sum 0 i 1 do sum sum i i while i 100 printf d n sum return1 2 循环的嵌套三种循环 while循环 do while循环和for循环 可以互相嵌套 如 1 while 3 for 5 for while for while 2 do 4 while 6 dododo for while while while while 4 4 3break语句和continue语句1 break语句一般形式为 break 一般用于 跳出switch结构 继续执行switch语句下面的语句 从循环体内跳出循环体 接着执行循环下面的语句 如 for r 1 r100 break printf f area 说明 1 break语句不能用于循环语句和switch语句之外的任何其他语句 2 break一般只能跳出一重循环 但不能用于goto循环 2 continue语句一般形式为 continue 作用是结束本次循环 即跳过循环体中下面尚未执行的语句 接着进行下一次是否执行循环的判断 只能用于循环体中 goto构成的循环除外 如 main intn for n 100 n 200 n if n 3 0 continue printf d n n return1 3 程序举例求Fibonacci 斐波那齐 数列40个数 即 0n 0Fib n 1n 1Fib n 1 Fib n 2 n 1 main longintf1 f2 inti f1 1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 return1 4 5goto语句与标号一般形式为 goto语句标号 其中语句标号用标识符加 表示 放在某个语句之前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 香港立体图形课件
- 第三章复习与测试说课稿-2025-2026学年高中地理湘教版2019选择性必修1-湘教版2019
- 债权转让协议的合同范本
- 公司向个人投资合同范本
- 公司终止租赁合同协议书
- 农民买卖宅基地合同范本
- 友谊合同协议书模板样本
- 扶贫代养猪协议合同范本
- 2025年度服装品牌全国代理销售授权合同范本
- 2025年度农业废弃物资源化利用与处理技术合同
- 活动成都热波zebra音乐节营销策划方案5月1日5月3日
- 四链融合:新质生产力的深度路径
- 2025-2026学年外研版(三起)(2024)小学英语三年级上册教学计划及进度表
- 2025年小学生“学宪法讲宪法”网络活动知识竞赛题库(含答案)
- 小学思政课《爱国主义教育》
- SMART200与ACS510通过modbus通信控制启停
- 山西省临汾市各县区乡镇行政村村庄村名居民村民委员会明细及行政区划代码
- 项目领导班子竞聘面试评分表
- 皮肤科常见疾病学习课件
- 工序质量报验单
- 斜屋面施工方案
评论
0/150
提交评论