c语言程序设计教程修订本选择结构.pptx
文本预览下载声明
3.1 语句与复合语句3.2 if 语 句3.3 if…else结构3.4 条件运算符3.5 switch结构3.6 程序举例3.1 语句与复合语句 在C语言中,一个表达式后面跟随一个分号就构成了一个语句,这种语句称为表达式语句。 在C语言中,分号(;)是表达式语句的终结符,而不是语句之间的分隔符,也就是说,分号是表达式语句的一个组成部分,只不过它位于表达式的后面。 在一个函数体内部,由左、右花括号括起来的语句称为复合语句,它的一般形式为{说明部分;语句部分;}返回目录 对于复合语句要注意以下几点:(1)一个复合语句在语法上等同于一个语句,因此,在程序中,凡是单个语句(如表达式语句)能够出现的地方都可以出现复合语句,并且,复合语句作为一个语句又可以出现在其他复合语句的内部。(2)复合语句是以右花括号为结束标志,因此,在复合语句右括号的后面不必加分号,但在复合语句内的最后一个非复合语句是要以分号作为结束的。(3)在复合语句的嵌套结构(将函数体也看成是一个复合语句,而且是最外层的复合语句)中,一个复合语句内所进行的说明只适合于本层中该说明语句以后的部分(包括其内层的复合语句),在该复合语句外不起作用。(4)在复合语句的嵌套结构中,如果在内层与外层作了相同的说明,则按照局部优先的原则,内层复合语句中的执行结果不带回到外层。3.2 if 语 句If 语句的形式为 if (表达式) 语句这种选择结构的流程图如图3.1所示。图3.1 if语句的流程图返回目录下面对if语句作几点说明:(1)if语句中的逻辑表达式(即条件)必须要用一对圆括号括起来。 (2)if语句后的语句可以是复合语句。 (3)一个if语句 最后需要强调的是,在使用if语句时,一定要注意逻辑表达式的正确写法,特别是在连续使用多个if语句时更要注意。 3.3 if…else结构 在C语言中,if…else结构的语句形式为 if (表达式) 语句1 else 语句2图3.2 if…else结构的流程图返回目录下面对if…else结构作以下几点说明: (1)if…else结构中的语句1与语句2都可以是复合语句。 (2)在if…else结构中,语句1与语句2都可以是空语句。 (3)在if…else结构中,如果在else前面有多个if语句,则else与最近的if配对。 (4)如果有多个if……else结构嵌套如下: if (表达式1) 语句1 else if (表达式2) 语句2 else … else if (表达式n) 语句n else 语句n+1则可简写成 if (表达式1) 语句1 else if (表达式2) 语句2 … else if (表达式n) 语句n else 语句n+1这种结构又称为if…else if结构,其流程图如图3.3所示。图3.3 if…else if结构的流程图3.4 条件运算符 在if…else结构中,如果语句1与语句2都是单一的赋值语句,并且都是给同一个变量赋值,则可以用条件运算符来进行处理。 下面对条件表达式作几点说明:(1)条件运算符优先级要比赋值运算符高。 (2)条件运算符的优先级比关系运算符与算术运算符都要低,因此,条件表达式中的“表达式1”、“表达式2”与“表达式3”都不必用括号括起来。 (3)条件运算符的结合方向为“从右到左”。 返回目录3.5 switch结构 在C语言中提供了一个直接实现多路分支选择的结构,称为switch结构,其一般形式如下:switch(表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 … case 常量表达式n:语句n default :语句n+1 }图3.4 switch结构的流程图 返回目录下面对switch结构作几点说明: (1)switch结构中的表达式、常量表达式1、…?、常量表达式n必须是整型或字符型。这是因为,在switch结构中,其分支数一般是有限的,并且是离散的,因此,其表达式的值也应是有限的,且是离散的。 (2)同一个switch结构中的常量表达式值必须互不相同,否则就会出现矛盾的现象,即对于“表达式”的同一个值对应多种执行方案,这是错误的。(3)在switch结构中,case 与 default 的顺序可以任意,各case之间 的顺序也可以任意。 (4)在执行switch结构时,当执行完某case 后的语句后,将顺序执行后面case 后的语句,直到遇 break 语句才退出整个switch 结构的执行。 (5)在switch结构中,如果没有default 且“表达式”值不等于任何case 后常量表达式的值,则直接退出switch 结构而转到其后的语句执行。3.6
显示全部