第二章程序基本结构 21分支结构 22关系运算和逻辑运算 23循环结构 24 break和 continue语句 ÷26经典算法举例
第二章 程序基本结构 ❖2.1 分支结构 ❖2.2 关系运算和逻辑运算 ❖2.3 循环结构 ❖2.4 break和continue语句 ❖2.6 经典算法举例
2分支结构 分支结构的引入 顺序结构只能解决一些简单的问题,遇到需要进行 条件判断的问题,就必须采用分支结构来处理 请输出2个数中的较大的数。-1x0 根据“体指数”判断某人的肥胖程度: 体指数tw/h2,其中:w体重(千克,h身高(米) t18低体重(偏瘦) t>=18&t=25&t<27高体重(偏胖) =27肥胖
2.1 分支结构 ➢分支结构的引入 ▪请编程求解分段函数: -1 x0 y = 顺序结构只能解决一些简单的问题, 遇到需要进行 条件判断的问题, 就必须采用分支结构来处理。 ▪请输出2个数中的较大的数。 ▪根据“体指数”判断某人的肥胖程度: 体指数 t= w / h2 , 其中: w—体重(千克), h—身高(米) t=18 & t=25 & t=27 肥胖
211单分支结构 1、语法形式: if(表达式)语句 假(0 真(非0) 真 A 语句 2、执行过程: 先计算表达式的值, 若为真(非0值),则执行其后的语句, 若值为0,则继续向下执行
2.1.1 单分支结构 1、语法形式: if ( 表达式 ) 语句 2、执行过程: 先计算表达式的值, 若为真(非0值), 则执行其后的语句, 若值为0, 则继续向下执行 语句 真 P P A 真(非0) 假(0)
211单分支结构 例2-1:输入2个整数,按由小到大的顺序输出 #include 输入a,b void main( i int a, b t 真 a>b 假 printf(“ input a,b:”) t=a scanf(“%d%d”,&a,&b) a=b if (a>b) {t=a; b=t a=b 输出a,b printf( yd,%dn”,a,b);
2.1.1 单分支结构 例2-1: 输入2个整数, 按由小到大的顺序输出 #include void main( ) { int a, b, t; printf(“ input a, b: ”); scanf(“%d %d”,&a,&b); if (a>b) { t=a; a=b; b=t; } printf(“%d,%d\n”, a, b); } 输入a , b t=a a>b? 输出a , b 真 假 a=b b=t
211单分支结构 例22:输入3个整数,按由小到大的顺序输出 输入a,b,c #include void main( 真 a>b? 假{inta,b,c,t; ac? 假if(a>b) ac) 真 b>c 假 i ta; a=c; c=t;) bc) i tb; b=c; c=t;) 输出a,b,c printf(%d, %d, %d \n", a, b, c);
例2-2: 输入3个整数, 按由小到大的顺序输出 输入a , b, c 输出a , b, c a>b? a→b 真 假 a>c? a→c 真 假 b>c? b→c 真 假 #include void main( ) { int a, b, c, t; printf(“ input a, b, c: ”); scanf(“%d%d%d”,&a, &b, &c); if (a>b) { t=a; a=b; b=t; } if (a>c) { t=a; a=c; c=t; } if (b>c) { t=b; b=c; c=t; } printf(“%d,%d,%d\n”, a, b, c); } 2.1.1 单分支结构
212双分支结构 1、语法形式 if(表达式)语句1 else语句2 真(非0) 假(0) 真 假 A B 语句1语句2 2、执行过程: 先计算表达式的值,若为真(非0值),执行语句1; 若值为0,执行 else后的语句2
1、语法形式: if ( 表达式 ) 语句1 else 语句2 2、执行过程: 先计算表达式的值, 若为真(非0值), 执行语句1; 若值为0, 执行else后的语句2 语句1 语句2 真 假 P 2.1.2 双分支结构 P A B 真(非0) 假(0)
212双分支结构 例2-3:输入2个整数,请输出其中的较大的数 #include 输入x,y void main( x>=y? 真 假 nt x, y printf( input x,y:”); 输出x输出y scanf(%d%d”,&x,&y); if (x>=y printf(max=%dn”,x); e se } printi(mnx=%dm”,y)
2.1.2 双分支结构 例2-3: 输入2个整数, 请输出其中的较大的数 输入x , y x>=y? 真 假 输出x 输出y #include void main( ) { int x, y; printf(“ input x, y: ”); scanf(“%d%d”, &x, &y); if (x>=y) printf(“max=%d\n”, x); else printf(“max=%d\n”, y); }
212双分支结构 例2-4:编程求解函数 0 X X3+X+1X>0 #include void main( 输入x d int x, y; 真 假 printf( input x:"”); y=0 scanf(scola y-X+X+1 &x); if(x<=0)y=0; 输出y else y=pow(x, 3)+x+1 printf(“y=%dn”,y)
#include #include void main( ) { int x, y; printf(“ input x: ”); scanf(“%d”, &x); if (x0 Y=
214i语句的嵌套 i的嵌套:在if语句中又包括一个或多个i语句 >嵌套的作用:对复杂条件进行判断,实现多分支选择 嵌套的形式多种多样 1.if(表达式1) if(表达式2)语句 2.if(表达式1)语句1 else if(表达式2)语句2 3.if(表达式件1)语句1 else if(表达式2)语句2 else语句3
2.1.4 if语句的嵌套 ➢if 的嵌套: 在if 语句中又包括一个或多个if 语句 ➢嵌套的作用: 对复杂条件进行判断, 实现多分支选择 ➢嵌套的形式多种多样 1. if (表达式1) if (表达式2) 语句 2. if (表达式1) 语句1 else if (表达式2) 语句2 3. if (表达式件1) 语句1 else if (表达式2) 语句2 else 语句3
214i语句的嵌套 4.i(表达式1) if2(表达式2)语句1 else语句2 对第4种形式可以有两种理解方式: (1)i(表达式1) 规定:在i嵌套结构中, i2(表达式2)语句1cs是与其前面最近的 else语句2 尚未配对的配对 (2)i(表达式1 {i2(表达式2)语句1} else①语句2
4. if① (表达式1) if② (表达式2) 语句1 else 语句2 (1) if① (表达式1) { if ② (表达式2) 语句1 else② 语句2 } (2) if① (表达式1) { if② (表达式2) 语句1 } else① 语句2 对第4种形式可以有两种理解方式: 规定: 在if 嵌套结构中, else是与其前面最近的 尚未配对的if 配对 2.1.4 if语句的嵌套