- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章分支语句第4章分支语句
C 程序设计基础教程 第四章 分支语句 * 第四章 分支语句 § 4.1 if 结构 § 4.2 Switch语句 § 4.3 程序范例 § 4.1 if 结构 顺序结构的程序只能以顺序的方式处理数据 ,但实际问题要求计算机能够对问题进行判断,根据判断的结果,选择不同的处理方式,这就要求程序本身具有判断和选择能力,分支结构正是为解决这类问题而设定的。 C语言用于实现分支有if结构和switch结构。 § 4.1.1 if语句 if结构是一种常用的分支结构,是最简单的一种单分支结构 。 一般形式为: if(表达式) 语句A 表达式:一般为条件表达式或逻辑表达式。 功能:先判断表达式的逻辑值,若该逻辑值为“真”,则执行语句A,否则,什么也不执行。 注意:if语句中的语句A一般情况下都是以复合语句的形式出现。 if结构的流程图 : 【例4-1】 从键盘任意输入两个实数,然后按其代数值从小到大输出这两个数。 先制定算法的流程图,如图所示,虚线框为if结构。 根据流程图可以很方便地写出解决这个问题的程序 /*exam4_1.c 按升序输出两个数*/ #include stdio.h main() { float a,b,t; scanf(%f,%f,a,b); if(ab) { t=a; a=b; b=t; } printf(%5.2f,%5.2f\n,a,b); } 【例4-2】:从键盘输入一个整数,求该数的绝对值。 该问题算法 的流程图 : 根据流程图写出的程序如下: /*exam4_2.c 求整数的绝对值*/ #include stdio.h main() { int num; scanf(%d,num); if(num0) num=-num; printf(The absolute value i s:%d\n,num); } § 4.1.2 if_else语句 if_else语句是一种双分支结构,其一般形式为: if(表达式) 语句A else 语句B 表达式:一般为条件表达式或逻辑表达式。 功能是:先判断表达式的值,若其值为“真”,则执行语句A,否则执行语句B。 if_else结构的流程图 : 【例4-3】 设计一个猜数游戏,由计算机产生一个随机数magic,从键盘输入一个数guess,若输入的数guess的大小等于随机数magic,则输出“You are right!”。否则,输出“You are wrong!”。 根据流程图可写出程序如下: /*exam4_3.c 猜数游戏的程序*/ #include stdio.h #include stdlib.h main() { int guess,magic; magic = rand(); scanf(%d, guess); if(guess == magic) printf(You Are Right); else printf(You Are Wrong); } § 4.1.3 if语句的嵌套 if语句的嵌套 :是指在if或else的分支下又可以包含另一个if语句或if_else语句,嵌套的形式有规则嵌套和任意嵌套两种。 if语句的规则嵌套形式如下: if(表达式1) 语句1 else if(表达式2) 语句2 else if (表达式3) 语句3 … else if (表达式n) 语句n else 语句n+1 if_else的规则嵌套流程图 【例4-4】 从键盘输入+、-、*、/中的任一个,输出对应的英文单词:plus 、minus、mutiply、divide,若输入的不是这四个字符中的任一个,则输出“error”。 算法的流程图如图所示,虚线框所示为if_else的规则嵌套: #includestdio.h main() { char ch; ch=getchar(); if (ch==+) printf(plus\n); else if (ch==-) printf(minus\n); else if(ch==*) printf(multiply\n); else if (ch==/)
文档评论(0)