第四章流程控制.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章流程控制概要

第四章 流程控制 4.1 复合语句 复合语句是用“{ }”括起来的一组语句,例如: { t=a; a=b; b=t; } 该复合语句交换变量a,b的值,t是用于暂时保存中间值的辅助变量。一个复合语句称为一个块。另外复合语句中可以包含说明语句,例如: { int t; t=a; a=b; b=t; } 复合语句的一般形式为: { 说明部分; 语句部分; } 注意:① 复合语句中的右花括号“}”的后面没有分号; ② 一个复合语句在语法上等价于单个语句,凡一个语句能够出现的地方都能出现复合语句,换句话说,复合语句在逻辑上是一个整体; ③ 复合语句可以嵌套,即一个复合语句中还可以出现复合语句; ④ 复合语句中说明部分的变量,其作用范围(作用域)只限于该复合语句内部,在复合语句外无意义; ⑤ if子句和else子句以及while、for的循环体,在语法上均规定为单个语句,若需要多个语句,必须写成复合语句的形式。另外,函数体语法上也是一个复合语句,但复合语句可以嵌套,而函数体中不可以嵌套函数。 输入两个整数,按从小到大的顺序输出这两个数。 #include stdio.h void main(void) { int a,b; printf(“input a,b:\n”); scanf(“%d%d”,a,b); { int t; if (ab) { t=a;a=b;b=t;} } printf(“a=%d,b=%d\n”,a,b); } 注意变量t的作用范围,若int t;前无{ }在语法上有错。 4.2 if语句 if语句也称为条件语句,它根据一个条件的真和假有选择地执行或不执行某个语句。 if语句的一般形式 if语句有两种形式 ⑴ if格式: if(表达式)语句1; ⑵ if-else格式: if(表达式)语句1; else语句2; 关于if语句的使用说明: ⑴ if和else是关键字,是if语句的标志。表达式用来选择条件,可以为任何表达式,表达式必须用括号括起来。 ⑵ 语句1和语句2是任何单个语句(包括复合语句),分别称为if子句和else子句,语句1和语句2末尾必须有分号(复合语句除外)。 ⑶ if语句中语句1的后面尽管有分号,但整个if语句(包括if-else形式)逻辑上是一个语句。 在前面我们举过一个例子,求a、b、c中最大值: 用条件运算符的形式为: m=(ab)?a:b; m=(mc)?m:c; 在功能上与下面使用if语句相同: if(ab) m=a; else m=b; if(mc) m=c; 解方程ax+b=0,a和b从终端输入 #includestdio.h void main(void) { float a,b,x; printf(“input a,b:\n”); scanf(“%f%f”,a,b); if(!a) printf(“error in input data\n”); else { x=-b/a; printf(“x=%.4f\n”,x); } } 如果将其中的else子句写成如下形式 else x=-b/a; printf(“x=%.4f\n”,x); 会发生什么情况? 因此正确地使用{}是写if语句时应特别注意的问题。 嵌套的if语句 当if子句或else子句又含有一个if语句时,则形成if语句的嵌套,称为嵌套的 if语句或称多重if语句。 例 求3个数中的最大值。 if(ab) if(ac) max=a; else max=b; else if(bc) max=b; else max=c; printf(“max=%.2f\n”,max); 还可以用非嵌套的if语句实现 if(a=ba=c) printf(“max=%.2f\n”,a); if(b=ab=c) printf(“max=%.2f\n”,b); if(c=ac=b) printf(“max=%.2f\n”,c); 对于嵌套的if语句,由于if 语句有两种形式,因此某些嵌套的if语句语义上可以有两种理解(二义性)。例如: if(n0) if(n0) if(ab) if(ab) z=a; z=a; else else z=b; z=b; 上面两个程序片断相同,因为编译程序约定else与其前面最靠近的且未配对的if配对。因此

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档