资源描述:
《第7章 C控制语句:分支和跳转2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章C控制语句:分支与跳转chenfei314@fzu.edu.cn本章内容关键字If、else、switch、continue、break、casedefaultgoto&&
2、
3、?函数getchar()putchar()分支程序设计if语句条件运算符?:switch语句分支程序设计举例分支程序设计在求解数学问题中常会遇到分段函数的问题,例如:2xx+≤1,0y=2xx−>3,0这类问题可以用if语句描述。if语句可分:单分支if语句双分支if语句多分支选择结构if语句的三种形式①if(expression)statement②If
4、(expression)statement1elsestatement2③If(expression1)statement1elseif(expression2)statement2elseif(expression3)statement3......elseif(expressionn-1)statementn-1elsestatementn多分支if语句if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(numbe
5、r>50)cost=0.05;elsecost=0;例:从键盘输入两个实数,输出其中最大者#includemain(){floata,b,max;printf("inputthetwonumbers:");scanf("%f%f",&a,&b);if(a>b)max=a;elsemax=b;printf("max=%f",max);}if语句的说明无论哪种形式,一条if语句,包括else或elseif子句,只算作一条语句if语句中的子句,可以是一条任何类型的语句,包括表达式语句、空语句、复合语句、控制语句子句末尾的分号
6、,只表示子句的结束,不表示if语句结束else子句都是可以没有的if语句举例if(x>y)/*y为x和y的较大值*/y=x;if(x>y)/*d为x和y之间的距离*/d=x-y;elsed=y-x;if(x>y);/*合法,但没有实际操作*/if语句的嵌套if语句的各子句都可以又是if语句应注意if-else的配对关系else总是与其上面最近的if配对可以用{}明确if-else的配对关系if(exp1)if(exp1)if(exp2){if(exp2)statement1statement1}elseelsestatement2sta
7、tement2例:写程序,判断某一年是否闰年。①、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1900年不是闰年)②、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年)N-S图①、普通年能整除4且不能整除100的为闰年。(如2004年就是闰年,1900年不是闰年)②、世纪年能整除400的是闰年。(如2000年是闰年,1900年不是闰年)逻辑运算符!(非)、算术、关系、&&、
8、
9、、赋值高低【注意】逻辑运算符的“短路”现象组合规律(设a、b、c均为合法表达式)•a&&b&&c…自左向右运算,遇0停止运算,
10、表达式值为0•a
11、
12、b
13、
14、c…自左向右运算,遇1停止运算,表达式值为1•0&&a
15、
16、b不计算a但要计算b•1&&a
17、
18、b计算a,a==0要计算b,a==1不计算b•0
19、
20、a&&b计算a,a==0不计算b,a==1要计算b•1
21、
22、a&&b不计算a和b,表达式值为1条件运算符(ConditionalOperator)条件运算符?:条件表达式exp1?exp2:exp3先判断exp1若exp1为“真”,表达式的值为exp2的值若exp1为“假”,表达式的值为exp3的值举例,max=(x>y)?x:y;同:if(x>y)max=x;e
23、lsemax=y;例子:例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。#includevoidmain(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z')?(ch+32):ch;printf("%c",ch);}switch语句用于多分支选择switch(expression){caseconst-exp:statementscaseconst-exp:statements......caseconst-exp:st
24、atementsdefault:statements}switch语句的说明先求switch后表达式的值,若此值与某个case后的常量表达式的值相等,则跳转到这个case后的语句