《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句

上传人:E**** 文档编号:89400545 上传时间:2019-05-24 格式:PPT 页数:20 大小:140.50KB
返回 下载 相关 举报
《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句_第1页
第1页 / 共20页
《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句_第2页
第2页 / 共20页
《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句_第3页
第3页 / 共20页
《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句_第4页
第4页 / 共20页
《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句》由会员分享,可在线阅读,更多相关《《C语言程序设计教程》电子教案-李淑华 第05讲 条件语句(20页珍藏版)》请在金锄头文库上搜索。

1、第五讲 条件语句,4.1 语句和复合语句 4.2 if语句 4.3 switch语句 4.4 应用举例,第四章 条件语句,结构化程序的三种基本结构:顺序结构、选择分支结构和循环结构。 顺序结构:是指每个程序都是按照语句的书写顺序依次执行的。 选择分支结构:是指通过对特定条件的判断,来选择一个分支执行。 循环结构:循环是指在给定条件下,重复执行某段程序,直到不满足条件为止。,4.1 语句和复合语句,表达式语句:一个表达式的后面跟随一个分号构成的语句。 如:x=x+a; 说明:分号“;”是语句的终结符,而不是语句的分隔符即分号是语句的最末组成部分。 复合语句:由左右花括号括起来的语句; 形式:说明

2、部分;语句部分 一个复合语句在语法上等同于一个语句,在程序中,凡是单个语句能够出现的地方,都可以出现复合语句。一个复合语句又可以出现在其他复合语句内部。 在复合语句的后面必须有一个分号,做为该语句的终结符。,4.2 if语句,If语句是条件选择语句,它是通过对给定条件的判断,来决定所要执行的操作。 4.2.1 if语句的三种形式 If语句的第一种形式 格式:if(表达式)语句 功能:首先计算表达式的值,若表达式的值 为“真”(为非0),则执行语句,若表达 式的值为“假”(为0),不执行语句。,例如: If(xy) printf(“%d”,x);,2. If语句的第二种形式 格式:if(表达式)

3、 语句1 else 语句2 功能:首先计算表达式的值, 若表达式的值为“真”(为非0)。 则执行语句1,若表达式的值为 “假”(为0),则执行语句2。,例如: if (xy) printf(“%d”,x); else printf(“%d”,y);,3. If语句的第三种形式 格式: if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式n) 语句n else 语句n+1 功能:首先计算表达式的值,若第n个表达式的值为“真”(为非0),则执行语句n,若所有的表达式的值都为“假”(为0),则执行语句n+1。其流程图如下:,例如:

4、if(score89) grade=5; else if(score74) grade=4; else if(score59) grade=3; else grade=2; 说明: (1)if语句中的表达式可以是C语言的合法表达式。 (2)第二种、第三种格式的if语句中,在每个else前面有一个分号,整个语句结束处也有一个分号。这是由于分号是C语句中不可缺少的部分,这个分号是if语句中的内嵌语句所要求的。 (3)在if和else后面可以只含有一个内嵌的操作语句,也可以含有多个操作语句,此时应用花括号“ “将几个语句括起来,构成一个复合语句。 例4.1 将两个数中较大者赋给 s。 main()

5、int a,b,s; a=10;b=20; if(ab) s=a; else s=b; printf(“s=%dn”,s); 执行结果: s=20,例4.2 比较两个数,按由大到小输出。 main( ) int a,b,x,y; a = 10; b = 20; if (ab) x=a;y=b; else x=b;y=a; printf(“x=%d,y=%dn”,x,y); 执行结果: x=20,y=10,4.2.2 if语句的嵌套 在if 语句中又包含一个或多个if语句,称为if语句的嵌套。一般形式如下: if( ) if( ) 语句1 else 语句2 else if( ) 语句3 else

6、 语句4 if( ) if( ) 语句1 else if( ) 语句2 else 语句3 说明: (1)if与else的配对关系,从最内层开始,else总是与离它最近的未曾配对的if配对。 (2)if与else的个数最好相同,从内层到外层一一对应,以避免出错。 (3)如果if与else的个数不相同,可以用花括号来确定配对关系。例如: If ( ) if( )语句1 else 语句2 这时 限定了内嵌if 语句的范围,因此else与第一个if配对。,例4.3 有一函数,编一程序,输入一个x值,输出y 值。 main( ) int x,y; scanf(“%d”,4.2.3 条件运算符 如果if语

7、句的形式如下所示: if(表达式1) x=表达式2; else x=表达式2; 无论表达式1为“真”还是为“假”,都只执行一个赋值语句且给同一个变量赋值。 可以利用条件运算符,将这种语句简单地用如下语句来表示。 x=表达式1?表达式2:表达式3; 说明:即当表达式1的值为“真”时,将表达式2的值赋给变量x;当表达式1的值为“假”时,将表达式3的值赋给变量x。 如: a=5,b=10,c=20; x=ab? c*b:c/b; 因为ab为假,则x=c/b=2。,例4.4 输入两个数,并将其中较大者显示出来。 #include “stdio.h” main( ) int a,b,max; scanf

8、(“%d%d”, 否则将字符B赋给变量grade.,4.3 switch语句,Switch语句是多分支选择语句,其一般形式如下: Switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1 ,可同时省略,switch语句的执行过程是:首先计算switch后面圆括号内表达式的值,若此值等于某个case后面的常量表达式的值,则转向该case后面的语句去执行;若表达式的值不等于任何case后面的常量表达式的值, 则转向default后面的语句去执行,如果没有default部分,则将不执行switch语句中的任何语

9、句,而直接转到switch语句后面的语句去执行。,说明: (1) switch后面圆括号内的表达式的值和case后面的常量表达式的值,都必须是整型的或字符型的,不允许是浮点型的。 (2)同一个switch语句中 的所有case后面的常量表达式的值都必须互不相同。 (3) switch语句中的case和default的出现次序是任意的,也就是说default也可以位于case的前面,且case的次序也不要求按常量表达式的大小顺序排列。 (4)由于switch语句中的“case常量表达式”部分只起标号的作用,而不进行条件判断,所以,在执行完某个case后的语句后,将自动转到该语句后面的语句去执行,

10、直到遇到switch语句的右花括号或“break”语句为此,而不再进行条件判断。 所以在执行完一个case分支后,一般应跳出switch语句,转到下一条语句执行,这样可在一个case的结束后,下一个case开始前,插入一个break语句,一但执行到braek语句,将立即跳出switch语句,如:,如: Switch(n) case 1: x=1; case 2: x=2; 当n=1时,将连续执行下面两个语句 : X=1; X=2;,如: Switch(n) case 1; x=1; Braek; Case 2; X=2 Braek ,(5)每个case的后面即可以是一个句号,也可以是多个语句,

11、当是多个语句的时候,也不需要用花括号括起来。 (6)多个case的后面可以共用一组执行语句,如: Switch(n); Case 1: Case 2: x=10; braet 它表示当n=1或n=2时,都执行下列两个语句: X=10; Braek;,例4.5 从键盘输入一个月份(112),并显示该月份的英文名称,#include”stdio.h” Main( ) int month; scanf(“%d”,case 6:printf(“June”); braek; case 7:printf(“July”); braek; case 8:printf(“August”); braek; cas

12、e 9:printf(“September”); braek; case 10:printf(“October”); braek; case 11:printf(“November”); braek; case 12:printf(“Decmeber”); braek; Default:printf(“Data Error!”); Break; ,4.4 应用举例,例4.6 输入一个数值,求出它的平方根,若为负数时,求出 它的复数平方根。 #include “stdio.h” #include “math.h” main( ) int n; float root; printf(“enter

13、a number:t”); scanf(“%d”, ,例4.7求两个数中最小值。 #include “stdio.h” main() int x,y,min; printf(“enter two integers:n”); acanf(“%d,%d, ,例4.8 从键盘输入一个操作符并进行相应和操作。 #include “stdio.h” main() int x=10,y=5,z; char op; scanf(“%c”, ,例4.9 输入三个数,按由小到大的顺序输出。 #include “stdio.h” main() int a,b,c,temp; printf(“enter three integers:t”); scanf(“%d,%d,%d”, ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号