- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 流程控制
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配对。因此
您可能关注的文档
- 教学课件---动物怎样睡觉剖析.ppt
- 第四章 统计假设检验与参数估计讲解.ppt
- 教学设计的基本方法和步骤剖析.ppt
- 发电厂定期工作标准-电气一次剖析.doc
- 第四章 二元合金讲解.ppt
- 第四章 关系系统及其查询优化讲解.ppt
- 教育科学出版社的二年级品德与生活上册教案1剖析.doc
- 教育培训业务管理系统剖析.docx
- 发电机启动试验安全技术措施剖析.doc
- 教职工安全教育培训讲话稿剖析.docx
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
文档评论(0)