C语句和流程控制.ppt
《C语句和流程控制.ppt》由会员分享,可在线阅读,更多相关《C语句和流程控制.ppt(32页珍藏版)》请在三一文库上搜索。
1、第三章 语句和流程控制,3.1 C语句概述 3.2 基本语句 3.3 复合语句 3.4 控制语句 3.5 分支结构程序设计语句 3.6 循环语句 3.7 其他的控制语句 3.8 循环的退出及死循环的避免 3.9 程序举例,3.1 C语句概述,C语言有四种类型的语句:基本语句、复合语句、控制语句和空语句。如下图所示。,其中空语句是什么都不做的语句,它只有一个分号“;”,构成C语言中最主要的语句是前三种语句,下面分别介绍它们。,3.2 基本语句,C语言的基本语句可分为表达式语句、函数调用语句和说明语句三种。 (1)表达式语句 在上一章介绍的一些表达式之后紧跟着加上一个分号“;”,即可形成表达式语句
2、。如: x = 7; i+; i-; x = y*z; 它们分别为赋值语句、增减1语句和算术运算语句。 注意:并不是所有的表达式都可加上分号构成C 的语句。如“i+j”表达式加上分号形成的“i+j;”没有任何意义,不是语句。 (2)函数调用语句 由带特定参数的一次函数调用加上一个分号构成。如: printf (China); scanf (%d,&a); 是两个库printf()、 scanf()函数调用语句。,(3)说明语句 说明语句包括变量定义语句和变量说明、函数说明、结构说明等。例如: int x,y,z=3; 定义x,y,z为整型变量 static int w ; 定义w为静态整型变量
3、 int max(); 定义ax是整型函数 struct student stu; 定义stu是结构体类型变量,3.2 基本语句,3.3 复合语句,复合语句也称为程序块。其一般形式是: 说明部分 语句部分 它是由一对花括号(“”和“”)括起来的说明部分和语句部分组合而成的复合结构。最简单的复合语句是单纯由二至多个语句经花括号括起来的结构形式。至今我们见到的复合语句是在函数中,函数的执行部分(函数体)总是一个复合语句。复合语句中可以有说明部分,也可以没有。 【例3.1】a和b的数值进行交换的多个语句,可用“”和“”括起来形成复合语句。 main() int a,b,t; scanf (%d %d
4、,&a,&b); if(a%dn,a,b); 也可以把变量t的说明语句放在复合语句中,main() int a,b; scanf (%d %d,&a,&b); if (ab) int t; t = a;a = b;b = t; printf (%d%dn,a,b); 在C语言中,每个变量都有其作用域,作用域为从定义它的地方开始,到同一层对应的右括号结束。即使外层中定义了与它同名的变量,内层中出现的该名字意味着内层变量起作用,而外层变量的访问被阻塞。关于变量的作用域,在第5章将会详细讨论。,3.3 复合语句,3.4 控制语句,对于任何一种计算机程序来说,不外乎有这样三种基本结构(也称为流程控制)
5、:顺序结构、选择结构、循环结构。下面在学习各种程序设计语句之前,我们首先一起学习语言的几种基本结构及其描述方式。 3.4.1 顺序结构 在前面所讨论的大多数是顺序结构。在顺序结构中,语句都是表达式语句或其复合构成的复合语句。程序的执行按语句的出现或安放的顺序依次执行。如图所示。,3.4.2 选择结构 选择结构如图3-2(b)所示。条件成立则执行语句,否则执行。、只能执行一个,、的出口路径汇合在一起。 3.4.3 循环结构 循环结构分为当型循环和直到型循环结构,如图3-2(c)(d)所示。当型循环结构先判断是否为真,若为真执行;再判断是否为真,若为真再执行,如此反复,直到为假。直到型循环结构先执
6、行,再判断是否为假,若为假再执行,如此反复,直到为真。 下面各节将基于上面各种结构分别介绍它们所对应的语句。,3.4 控制语句,3.5 分支结构程序设计语句,1if语句 if语句为判断语句,其一般形式有三种: (1)if(表达式) 语句S (2)if(表达式) 语句S1 else 语句S2 (3)if(表达式1) 语句S1 else if(表达式2) 语句S2 else if(表达式3) 语句S3 else if(表达式n) 语句Sn else 语句Sn+1 先看第(1)种形式。它将根据表达式的值决定是否执行“语句S”。被测试的条件是圆括号中的表达式,若表达式的值非零(表示该条件成立或关系真)
7、,则执行“语句S”,否则跳过“语句S”。如图所示。其中“语句S”既可是单个C语句,也可以是多个C语句组成的复合语句。,再看第(2)种形式: if (表达式) 语句S1 else 语句S2 当表达式的值非0,执行语句S1,否则执行语句S2。流程如图所示。,3.5 分支结构程序设计语句,2if语句的嵌套 if语句的嵌套是指在if语句中又包含了一个或多个if语句。一般形式如下: if (表达式) if(表达式) 语句1 else 语句2 else if(表达式) 语句3 else 语句4 说明: (1) if与else是配对关系,else总是与它上面最近的if配对。 (2) 可用复合语句来改变配对关
8、系。如: if (表达式) if(表达式) 语句1 else if(表达式) 语句3 else 语句4 对if语句的嵌套层数c语言没有限制。,3.5 分支结构程序设计语句,3.5 分支结构程序设计语句,【例】用户从键盘键入+、-、*和/中的任意一个,屏幕上出现对应的英文单词plus,minus,multiply,divide。若按了其他键,屏幕上出现问号。 #inlclude stdio.h main() int c; c = getchar(); if(c = = + ) printf(plusn); else if (c = = - ) printf(minusn); else if (c
9、 = = ) printf(multiplyn); else if (c = = / ) printf(dividen); else printf(?n); ,3.5 分支结构程序设计语句,3switch语句(开关语句) switch语句用于多路选择转向的程序中,也就是多路分支结构的程序。前面曾用多重的if-else 语句来表示多路选择转向,现在用switch语句来实现更为清楚简明。 switch 语句的一般形式: switch (表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default: 语句n+1 ,3.5 分支结构程序设计语
10、句,关于switch语句的相关说明: (1) switch后面括号内的表达式,可以是整形表达式、字符型表达式,也可以是枚举型数据,且必须与case后的常量表达式的类型一致; (2) case和default后的语句可以是任意语句,不必用花括号括起来构成复合语句,会自动顺序执行本case后面的可执行语句; (3) case和default相当于语句标号,当表达式的值与某个case 后面常量表达式的值相等时,就从该case后面的语句开始执行,直到遇到break语句或switch语句结束。如果所有的常量表达式的值都没有与表达式的值匹配,就从default后面的语句开始执行,直到遇到break语句或执
11、行到switch语句结束。在没有default语句时,什么也不执行,直接执行switch的后继语句; (4) 同一个switch语句中,任意两个case的常量均不允许有相同的值,嵌套例外。 (5) 如果希望在某个case和default分支执行后使流程跳出switch语句,则可以在该分支的最后加上一条break语句。如果各个case和default都是独立的分支时,它们都可以用一条break语句中止,这时它们在switch语句中出现的次序不影响执行结果。 (6) 多个case可以共用一组执行语句,如 case A: case B: case C: printf(60n);break; 表达式的
12、值为A、B或C时都执行同一组语句。,3.5 分支结构程序设计语句,3.5 分支结构程序设计语句,【例】写一个程序,求某年某月的月天数。 main() int y,m,d; scanf(%d,%d, , ,3.6 循环语句,3.6.1 while循环语句 while循环语句的一般形式为: while (表达式) 语句S 它表示,当表达式的值为非0(即表达式为真),就执行语句S;再计算表达式的值,若非0,再执行语句S,直到表达式计算的结果为0(即表达式为假),结束循环。有的书上称为“当型循环”。其流程如图3-4所示。,【例3.7】把输入的字符原样输出,直到输入“?”为止。 #include std
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语句 流程 控制
链接地址:https://www.31doc.com/p-2201079.html