- 1、本文档共50页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章语句选择
* * * * * * * * * * 嵌套的if语句 在 if(表达式)语句中,可以再是if语句,从而构成嵌套的if语句。C语法规定else 必须与最近的if相匹配。 例1: if (表达式1) if (表达式2) 语句 1; else 语句 2; else if (表达式3) 语句3 ; if(表达式1) if (表达式2) 语句 1; else if (表达式3) 语句3 ; if(表达式1) { if (表达式2) 语句 1; } else if (表达式3) 语句3 ; 例2: Y= -1 (X0) 0 (X=0) 1 (X0) 编一程序,输入一个x值, 输出y值, ?X X=0 X0 是 否 Y=-1 Out Y 是 否 Y=0 Y=1 N-S流程图 流程图如下: 开始 输入x X0 Y=-1 X=0 Y=0 Y=1 输出y 结束 Y N Y N 对[例2]编写以下几个程序,请判断正确的程序。 程序1: void main() { int x,y; scanf(“%d”,x); if (x0) y=-1; else if (x==0) y=0; else y=1; printf(“x=%d,y=%d/n”,x,y); } 程序2:将上面第4-6行改为: if (x=0) if (x0) y=1; else y=0; else y=-1; 程序3:再另改为: y=-1; if (x!=0) if (x0) y=1; else y=0; 程序4:再另改为: y=0; if (x=0) if (x0) y=1; else y=-1; 只有程序1和程序2正确 switch 表达式 语句组1 语句组2 语句组n 语句组 ...... E 1 E 2 En default case switch语句(开关分支语句) 一般形式:表达式的值为任意类型 执行过程:表达式的值与某个常量值Ex相等时,执行其后的语句组x switch (表达式) { case E1: 语句组 1; break; case E2: 语句组 2; break; ……. case En: 语句组 n; break; [default: 语句组 ; break;] } 2.关于switch的说明: (1)switch后面括弧内的“表达式”,ANSIC标准允许它为任 何类型。 (2)当表达式的值与某一个case后面的常量表达式的值相等 时,就执行此case后面的语句,若所有的 case中的常量 表达式的值都没有与表达式的值匹配的,就执行default 后面的语句。 (3)每一个case的常量表达式的值必须互不相同,否则就会出 现互相矛盾的现象。 (4)各个case和default的出现次序不影响执行结果。 (5)执行完一个case后面的语句后,流程控制转移到下一个 case继续执行。“case常量表达式”只是起语句标号作用, 并不是在该处进行条件判断。在执行switch语句时,根 据switch后面表达式的值找到匹配的入口标号,就从此 标号开始执行下去,不再进行判断。因此,应该在执行 一个case分支后,使流程跳出switch结构,即终止 switch语句的执行。可以用一个break语句来达到此目 的。 (6)多个case可共用一组执行语句。 如: …… case ‘A’: case ‘B’: case ‘C’: printf(“score60\n”); break; …….. 写程序,判断某一年是否是闰年。以变量leap代表是否闰年
文档评论(0)