第5章选择结构程序设计 要设计选择结构程序,要考虑两个方面的问题:一是 在C语言中如何来表示条件,二是在C语言中实现选择结 构用什么语句。 在C语言中表示条件,一般用关系表达式或逻辑表达 式,实现选择结构用ⅱ语句或 switch语句。 5,1ii语包 5,2关系运算及其表达式 5.3逻辑运算及其表达式 5.4 switch语包 5.5选择结构程序举例 良好的源程序书写风格—注释 REturn
第5章 选择结构程序设计 要设计选择结构程序,要考虑两个方面的问题:一是 在C语言中如何来表示条件,二是在C语言中实现选择结 构用什么语句。 在C语言中表示条件,一般用关系表达式或逻辑表达 式,实现选择结构用if语句或switch语句。 5.1 if语句 5.2 关系运算及其表达式 5.3 逻辑运算及其表达式 5.4 switch语句 5.5 选择结构程序举例 良好的源程序书写风格──注释 [Return]
例1:输入一个数X 例2:输出三个数a,b,c 若Ⅹ大于0,输出正数, 中最大的数 否则输出负数。 开始 开始 输入三个数n1,n2,n3 输入一数X N >1 N Iy[nn2交换 nI>n3 Y 输出正数输出负数 输出n1 输出n3 结束 结束
例1:输入一个数X, 若X大于0,输出正数, 否则输出负数。 开始 输入一数X X>0 输出正数 输出负数 结束 Y N 例2:输出三个数a,b,c 中最大的数。 y 开始 输入三个数n1,n2,n3 n1>n2 n1>n3 结束 输出n1 Y n1,n2交换 N 输出n3 N
5.1i语句和条件运算符 51i语句 案例5订输入任意三个整数nl、n2、n3,求三个数中的最大值 /*案例代码文件名:AL51C。*/ *功能:说明i语句的格式 maino fint nl, n2, n3, max printf("Please input three numbers scanf(" %od, %d, %d", &nl, &n2, &n3) if(n1>n2) max=n1: lse maxent if(n3>max) maxent printf( "The three numbers are: %d, %d, %dn" nl, n2, n3 printf("max=od n", max) 「程序演示
5.1 if语句和条件运算符 5.1 if语句 [案例5.1] 输入任意三个整数n1、n2、n3,求三个数中的最大值。 /*案例代码文件名:AL5_1.C。*/ /*功能:说明if 语句的格式。*/ main() {int n1,n2,n3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&n1,&n2,&n3); if (n1>n2) max=n1; else max=n2; if (n3>max) max=n3; printf("The three numbers are:%d,%d,%d\n",n1,n2,n3); printf("max=%d\n",max); } [程序演示]
程序运行情况如下: Please input three numbers: 1 1, 22, 18K The three numbers are: 11.22.18 max=22 本案例中的第1个i语句,可优化为如下不带else子句的 形式:max=nl; if(n2>max)max=n2 1.if语句的一般格式 f表达式 {语句组1;} else {语句组2} 1)if语句中的“表达式”必须用“(和“)括起来 (2)else子句(可选)是i语句的一部分,必须与i配 对使用,不能单独使用 (3)当i和else下面的语句组,仅由一条语句构成时, 也可不使用复合语句形式(即去掉花括号)
程序运行情况如下: Please input three numbers:11,22,18↙ The three numbers are:11,22,18 max=22 本案例中的第1个if语句,可优化为如下不带else子句的 形式:max=n1; if(n2>max) max=n2; 1.if语句的一般格式 if(表达式) {语句组1;} [else {语句组2;}] (1)if语句中的“表达式”必须用“(”和“)”括起来。 (2)else子句(可选)是if语句的一部分,必须与if配 对使用,不能单独使用。 (3)当if和else下面的语句组,仅由一条语句构成时, 也可不使用复合语句形式(即去掉花括号)
2.i语句的执行过程 if<表达式的 (1)缺省ele子句时 真 当“表达式”的值不等于 0(即判定为“逻辑真”)时, 语句组1 则执行语句组1,否则直接转 向执行下一条。如图 下一条语句 (2)指定else子句时 “表达式”的值不等于0 表达式的值 (即判定为“逻辑真”)时, 真 则执行语句组1,然后转向下 条语句;否则,执行语句组 语句组1语句组2 2。如图。 下一条语句
2.if语句的执行过程 (1)缺省else子句时 当“表达式”的值不等于 0(即判定为“逻辑真”)时, 则执行语句组1,否则直接转 向执行下一条。如图 (2)指定else子句时 当“表达式”的值不等于0 (即判定为“逻辑真”)时, 则执行语句组1,然后转向下 一条语句;否则,执行语句组 2。如图。 下一条语句 表达式的值 语句组1 真 假 下一条语句 表达式的值 语句组1 真 假 语句组2 if if else