C语言程序设计 第4章选择结构程序设计 八此京故太受计算机系
第4章 选择结构程序设计 北京科技大学 计算机系 C 语言程序设计
本章主要内容 41i语句 411i语句的一般形式 412i语句的嵌套 42 switch语句 421 switch语句的一般形式 422 break语句 43选择结构程序设计举例 2021/2/24
2021/2/24 本章主要内容 2 4.1 if语句 4.1.1 if语句的一般形式 4.1.2 if语句的嵌套 4.2 switch语句 4.2.1 switch语句的一般形式 4.2.2 break语句 4.3 选择结构程序设计举例
简单分支语句 语句一般格式 内嵌语句,可为: 赋值语句 if(表达式)语句 函数调用语句 控制语句 可为算术、关系、逻辑、赋值 复合语句 等表达式 空语句 ●功能 计算表达式的值,如果是一个非0值(即 逻辑真),就执行内嵌语句,否则(即逻 辑假)跳过内嵌语句,顺序执行后续语句。 2021/2/24
2021/2/24 简单分支语句 3 ⚫ 语句一般格式 if (表达式) 语句 ⚫ 功能: – 计算表达式的值,如果是一个非0值(即 逻辑真),就执行内嵌语句,否则(即逻 辑假)跳过内嵌语句,顺序执行后续语句。 内嵌语句,可为: • 赋值语句 • 函数调用语句 • 控制语句 • 复合语句 • 空语句 可为算术、关系、逻辑、赋值 等表达式
简单分支语句的算法 流程图 N-S结构图 表达式非0 表达式非0? Y 语句 语句 ●例如: (1)(x>0)m++; (2)i(a>b) I c=a; a=b; b=c: 2021/2/24
2021/2/24 简单分支语句的算法: 4 ⚫ 例如: ⑴ if (x>0) m++; ⑵ if ( a>b ) { c=a; a=b; b=c; } 表达式非0 T F 语句 N-S结构图 语句 流程图 N Y 表达式非0?
双重分支语句 语句一般格式 f(表达式)语句1ese语句2 ●功能: 计算表达式的值,如果它的值是一个非0值 (逻辑真),就执行内嵌语句1,之后跳过内 嵌语句2,执行后续语句;否则跳过内嵌语句 ,执行内嵌语句2,之后执行后续语句。 2021/2/24
2021/2/24 双重分支语句 5 ⚫ 语句一般格式 if (表达式) 语句1 else 语句2 ⚫ 功能: – 计算表达式的值,如果它的值是一个非0值 (逻辑真),就执行内嵌语句1,之后跳过内 嵌语句2,执行后续语句;否则跳过内嵌语句 1,执行内嵌语句2,之后执行后续语句
双重分支语句的算法 流程图 NS结构图 Y 表达式非0 表达式非0? 语句1 语句2][语句1语句2 ●例如 (1)if(x>0)m++; else m (2)if(ch>="a'&&ch<=z') t ch=ch-32:; printf(" %cIn", ch); else printf(" %cIn", ch); 2021/2/24
2021/2/24 双重分支语句的算法: 6 ⚫ 例如: ⑴ if (x>0) m++; else m--; ⑵ if ( ch>= 'a' && ch<= 'z' ) { ch=ch-32 ; printf(" %c\n",ch); } else printf(" %c\n",ch) ; 表达式非0 T F 语句1 语句2 N-S结构图 语句1 语句2 流程图 Y N 表达式非0?
多重分支语句 语句一般格式 if(表达式1)语句1 else if(表达式2)语句2 ●。●●●● else if(表达式m)语句m ese语句n ●功能: 依次计算并判断表达式i,为非0时执行后面 的语句,都为0时,执行语句n 无论执行完那个语句分支,都转到后续语句◎ 2021/2/24
2021/2/24 多重分支语句 7 ⚫ 语句一般格式 if (表达式1) 语句1 else if (表达式2) 语句2 …… else if (表达式m) 语句m else 语句 n ⚫ 功能: – 依次计算并判断表达式i,为非0时执行后面 的语句,都为0时,执行语句n – 无论执行完那个语句分支,都转到后续语句
多重分支语句的算法 8 ●流程图 表达式1? 语句1 表达式2? 语句2 表达式m 语句m 语句n 2021/2/24
2021/2/24 多重分支语句的算法 8 ⚫ 流程图 表达式2? 表达式1? 语句n 语句1 语句2 语句m Y N … Y N Y N 表达式m ?
多重分支语句的算法 NS结构图 表达式1? F 表达式2? 语句1T 语句2 表达式m2 语句m语句n ●例如: if(a<0)X=-1 else if (a==0)X=0, else x=1 2021/2/24
2021/2/24 多重分支语句的算法 9 ⚫ N-S结构图 表达式1? T F 表达式2? 语句1 T F 语句2 … 表达式m? T F 语句m 语句n ⚫ 例如: if (a<0) x= -1 ; else if (a==0 ) x= 0 ; else x=1 ;
j语何的简单应用 10 【例41】输入一个字符,如果是大写字母, 则将其转换为小写字母输出,否则 直接输出。 思路 输入:用 getchar或snaf函数 ●ch是否为大写字母:ch>=A'&&ch=65&&ch<=90) 大写字母转换为小写字母:ch=ch+32 ●输出:用 putchar或 printf函数 2021/2/24
2021/2/24 10 if语句的简单应用 【例4.1】输入一个字符,如果是大写字母, 则将其转换为小写字母输出,否则 直接输出。 ⚫ 输入:用 getchar 或 scnaf 函数 ⚫ ch是否为大写字母: ch>='A' && ch=65 && ch <= 90) ⚫ 大写字母转换为小写字母: ch=ch+32 ⚫ 输出:用 putchar 或 printf 函数 思路: