多层选择结构 格式:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语旬3 else if(表达式n)语旬n else语旬n+1 执行过程: 依次计算各表达式的值,若表达式之值为非0,即条件成 立执行其后的语句后,跳过其它语句,向下执行;若表达 式之值为0,即条件不成立,则继续判断其它条件;当所 有的条件都不成立时,执行语句n+1后继续向下执行。 21
21 多层选择结构 格式: if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 : : : : else if (表达式n) 语句n else 语句n+1 执行过程: 依次计算各表达式的值,若表达式之值为非0,即条件成 立执行其后的语句后,跳过其它语句,向下执行;若表达 式之值为0,即条件不成立,则继续判断其它条件;当所 有的条件都不成立时,执行语句n+1后继续向下执行
多层选择结构 零达式N 表达式N 语句1 Y达式y 语句2 Y 专达式 语句3 语句4语句5 22
22 多层选择结构 表达式1 语句1 Y 表达式2 N 语句2 Y 表达式3 N 语句3 Y 表达式4 N 语句4 Y 语句5 N
选择结构举例—按升序输出 程序运行后,如果从键 main( 盘上输入6,2,8,则程序 float a b 运行的顺序为: scanf("%f, %f", &a, &b) printf("na=%.1f, b=%. 1f In" a, b) if (a>b 这是一个 printf", 6.f,%.fn",b,a) 双边结构 else printf(%.1f%.1fn, a, b); =.8,b=3.8 printf( End );) 2.8,6.0 运行程序 End 3
23 双边选择结构举例——按升序输出两个实数 main ( ) { float a,b; scanf("%f,%f",&a,&b); printf("\na=%.1f, b=%.1f \n",a,b); if (a>b) printf("%.1f, %.1f\n",b,a); else printf("%.1f,%.1f\n",a,b); printf("End\n"); } 程序运行后,如果从键 盘上输入2.8,6,则程序 运行的顺序和结果为: a=2.8,b=6.0 2.8,6.0 End a=6.0,b=2.8 End 这是一个 双边结构 运行程序 程序运行后,如果从键 盘上输入2.8,6,则程序 运行的顺序为: 6,2.8
选择结构举例—按升序输出两个实数 程序运行后,如果从键 main( 盘上输入28,6,则程序 运行的顺序为: i float a, b, t 这是 scanf(%f, %f, &a, &b) 单边结构 if( a>b) {t=a,a=b;b=t}/*复合语句*/ printf(%8.2f,%8.2fn", a, b) print( End n) 2.80,6.00 End 运行程序 24
24 这是一个 单边结构 单边选择结构举例——按升序输出两个实数 main( ) { float a,b,t; scanf("%f,%f",&a,&b); if( a>b) { t=a; a=b; b=t; } /* 复合语句 */ printf("%8.2f,%8.2f\n",a,b); printf("End\n"); } 程序运行后,如果从键 盘上输入6,2.8,则程序 运行的顺序为: 2.8,6 2.80, 6.00 End 运行程序
两个变量交换数据的实现方法 main( 变量a 变量b i float a, b, t 3 scanf( %f, %f", &a, &b) if( a>b) 变量t t=a;a=b;,b=t;}/*变量交换*/ 3 printf(%5.2f,%5.2fn", a, b); printf("End n";) 执行b=t;后 注意:变量a,b交换内容不能简单地用a=b;b=a;来实现 正确的方法是借助一个中间变量(如t)来实现 先执行ta将a的值保存在中间变量t中 再执行ab将b的值赋给变量a 最后执行bt将t保存的变量a的原来值赋给变量b
25 两个变量交换数据的实现方法 变量a 3 变量b 5 变量a 5 变量b 5 执行a=b;后 注意:变量a,b交换内容不能简单地用a=b;b=a;来实现 正确的方法是借助一个中间变量(如t)来实现 变量a 5 变量b 5 执行b=a;后 变量a 3 变量b 5 随机 变量t 变量a 3 变量b 5 执行t=a;后 3 变量t 变量a 5 变量b 5 执行a=b;后 3 变量t 变量a 5 变量b 3 执行b=t;后 3 变量t 先执行t=a;将a的值保存在中间变量t中 再执行a=b;将b的值赋给变量a 最后执行b=t;将t中保存的变量a的原来值赋给变量b main( ) { float a,b,t; scanf("%f,%f",&a,&b); if( a>b) { t=a; a=b; b=t; } /* 变量交换 */ printf("%5.2f,%5.2f\n",a,b); printf("End\n"); }