c语言学习,c语言课件第04章.ppt
《c语言学习,c语言课件第04章.ppt》由会员分享,可在线阅读,更多相关《c语言学习,c语言课件第04章.ppt(39页珍藏版)》请在三一文库上搜索。
1、第4章 选择结构程序设计,4.1 if语句 4.2 switch语句 4.3 选择结构程序设计举例,本章学习目标 熟悉if语句的格式及应用的几种形式 掌握if语句嵌套应用的方法 掌握条件运算符的应用 掌握switch语句的格式及应用 掌握选择结构程序的设计方法,Return,4.1 if语句,if语句又叫条件语句,它是通过判别条件是否成立,来决定程序的流程(在可能执行的两个流程中选择执行其中的一个)。 1. if语句的一般格式 if(表达式) 语句组1 else 语句组2 如: if(a=b) printf(“%d”, a); else printf(“%d”, b);,2.if语句的三种形式
2、 形式一:(缺省else子句时) 格式:if(表达式) 语句 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句,否则直接转向执行下一条。如图4-1所示。 例如:if(xy) printf(“max=%d“,x);,形式二:(指定else子句时) 格式:if(表达式) 语句1 else 语句2 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。如图4-2所示。 例如: if(xy) printf(“max=%d“,x); else printf(“max=%d“,y);,形式三:(if语句嵌套) 格式:if(表达式1) 语句1
3、else if(表达式2) 语句2 else if(表达式3) 语句3 . else if(表达式m) 语句m else 语句n,例如:if(number500) const=0.15; else if(number300) const=0.10; else if(number100) const=0.075; else if(number50) const=0.05; else const=0;,说明: (1)if (表达式)中的“表达式”一般为逻辑表达式或关系表达式,如: if(a=b ,(2)“语句组1”和“语句组2”,可以只包含一个简单语句,也可以是复合语句。复合语句须在其第一个语句前
4、用左花括号“”开头,最后一个语句后以右花括号“”结尾,如: if(a+bc ,【例4-1】 输入任意三个整数,求三个数中的最大值。 【思路导航】定义三个变量num1、num2、num3,分别表示从键盘输入的任意三个数,再定义变量max表示三个数中的最大值。 首先取一个数预置为max(最大值),然后再用max依次与其余的数逐个比较,如果发现有比max大的,就用它给max重新赋值,比较完所有的数后,max中的数就是最大值。 对从3个或3个以上的数中找最大值的处理,上述方法是非常好用的。 程序如下:,单击此处,/*exam4_1*/ int main(void) int num1,num2,num3
5、,max; printf(“Please input three numbers:“); scanf(“%d,%d,%d“, ,演示,屏幕显示运行结果为:,Please input three numbers:35,100,85 The three numbers are: 35,100,85 max=100,【例4-2】 输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。 【思路导航】编程思路与例4-2基本上相同。不同的是:由于本例题要求将所输入的三个数按从小到大的顺序排序输出,故在比较大小时要注意小数排在前,大数排在后,位置不符时要交换两数的位置。 程序如下: /*ex
6、am4_2*/ int main(void) int num1,num2,num3,temp; printf (“Please input three numbers:“); scanf (“%d,%d,%d“, ,演示,屏幕显示运行结果为:,Please input three numbers: 35,100,85 Three numbers after sorted: 35, 85,100,3if语句的嵌套 if语句允许嵌套。 (1)if语句的嵌套形式 所谓if语句的嵌套是指:if语句中包含另一个if语句,即:在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。 if语句的嵌套的
7、一般形式: if(表达式1) if(表达式2 ) 语句组1 /*内嵌if语句*/ else 语句组2 else if(表达式3 ) 语句组3 /*内嵌if语句*/ else 语句组4,(2)if语句的嵌套与嵌套匹配原则 if语句嵌套时,从最内层开始,else总是与它上面距它最近、且尚未匹配的if配对。 为明确匹配关系,避免if与else配对错位的最佳办法是将内嵌的if语句,一律用花括号括起来。 为了便于阅读,使用适当的缩进,此时大括号能保证if和else不错位配对,而且适当的缩进便于阅读程序。 例如以下两组循环的嵌套因加入大括号后,所表示的含义不同。,if() if () if() 语句1 i
8、f () 语句1 else else 语句2 语句2,加改变配对关系:,【例4-3】 有一函数如下,编程实现:输入一个x值,即可输出y值。 下面以if语句嵌套的不同的方法来编写程序。,方法一: /*exam431*/ int main(void) int x,y; scanf(“%d“, ,演示,屏幕显示运行结果为:,35 x=35,y=1,方法二: /*exam432*/ int main(void) int x,y; scanf(“%d“, ,演示,屏幕显示运行结果为:,-35 x=-35,y=-1,35 x=35,y=-1,0 x=0,y=0,方法三: /*exam433*/ int m
9、ain(void) int x,y; scanf(“%d“, ,方法四: /*exam434*/ int main(void) int x,y; scanf (“%d“, ,4.条件运算符“?“运算符 在if语句中,当“表达式”的值为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,例如: if(ab) max=a; else max=b; 则可以用条件运算符构成 一个条件表达式来处理,如下所示: max=(ab)?a:b; 其中,“(ab)?a:b”是一个条件表达式,其含义是:若条件(ab)成立,则条件表达式取值a;否则,取值b。,(1)条件表达式的一般格式: 表达式1?表达式2:表达
10、式3 例如: int main(void) int x, y; x=80; y=x70?100:0; printf(“y=%d“,y); return 0; ,注意:条件运算符要求有三个操作对象,称为“三目运算符”(它是C语言中唯一的一个三目运算符)。条件表达式中的“表达式1”、“表达式2”、“表达式3”缺一不可,其类型可以各不相同。,屏幕显示运行结果为:,y=100,演示,(2)条件表达式的运算规则 如果“表达式1”的值为非0(即逻辑真), 则运算结果等于“表达式2”的值;否则,运算结果等于“表达式3”的值。 条件表达式的流程图如图4-4所示。,真(非0),表达式1,条件表达式 取表达式2的
11、值,假(0),条件表达式 取表达式3的值,图4-4 条件表达式的流程图,条件运算符的结合方向 条件运算符的结合方向为“从右到左”(即右结合性)。如: ab? a:cd?c:d 等介于:(ab)?a:(cd?c:d), if语句一般都可以用条件表达式代替。如: if(ab) printf(“%d“,a); else printf(“%d“,b); 等介于: (ab)?printf(“%d“,a):printf(“%d“,b); 或: printf(“%d“,ab?a:b);,条件运算符的优先级高于赋值运算符,但低于算术运算符和关系运算符。如: max=(ab)?a:b; 等介于:max=ab?a
12、:b; ab?a:b+1 等介于:(ab)?a:(b+1),(3)说明:,演示,【例4-4】 从键盘上输入一个字符,判别它是否为大写字母,如果是,则把它转换成小写字母输出;否则不转换,直接输出。,【思路导航】字符在计算机内是用ASCII表示,大写字母的ASCII值正好比相应的小写字母小32,因此,若能判断出所输入的字符为大写字母,则将该字符的ASCII值加上32后,即转换为相应的小写字母。判断字符ch是否为大写字母的条件是:ch=A & ch=Z为真。,/*exam4_4*/ int main(void) char ch; printf(“Input a character: “); scan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学习 课件 04
链接地址:https://www.31doc.com/p-2142758.html