214i语句的嵌套 例2-5:编程求解分段函数: 1x<0 方法3 y 0x=0 if(x>=0) 1x>0 方法1 if(x>0)y=1; if (X<0) else y=0 else if(x==0)y=0; else y=-1: else y=l 方法4 方法2 y=-1; if(x==0)y=0: if(x!=0 else if(X<0)y=-1; if(x>0)y=1;} else y=l else y=0
例2-5: 编程求解分段函数: -1 x<0 0 x=0 1 x>0 y = 方法1 if (x<0) y=-1; else if (x==0) y=0; else y=1; 方法3 if (x>=0) if (x>0) y=1; else y=0; else y=-1; 方法4 y=-1; if (x!=0) { if(x>0) y=1; } else y=0; 方法2 if (x==0) y=0; else if (x<0) y=-1; else y=1; 2.1.4 if语句的嵌套
214语句的嵌套 例26判断某人的肥胖程度,体指数tw/h2 w-体重(千克,h-身高(米) #includesstdio h> t<18低体重(偏瘦) void main( t>=18&t25正常体重{oatt,w,e scanf(%of%of w,&h) t=25&t<27高体重偏胖)=w(hh); printi(“t=%”,0; t>=27肥胖 if(t<18) 输入w,h printf(lower weight! \n); 计算t=w/(hh) eise 真(18? if(t-25) printf(normal weight! \ 真 t<259 eise if(t<27 输出输出真 7 假假假 printf(higher weight! n); 低体重正常输出输出 e se 体重高体重肥胖」} printf(“ too fat!ln”)
2.1.4 if语句的嵌套 例2-6 判断某人的肥胖程度, 体指数 t= w / h2 w-体重(千克), h-身高(米) t<18 低体重(偏瘦) t>=18 & t<25 正常体重 t>=25 & t<27 高体重(偏胖) t>=27 肥胖 输入w, h 计算 t=w/(h*h) 输出 低体重 输出 正常 体重 输出 高体重 输出 肥胖 真 t<18 ? 假 真 t<25 ? 假 t<27 ? 真 假 #include<stdio.h> void main( ) { float t, w, h; scanf(“%f%f”,&w,&h); t=w/(h*h); printf(“t=%f ”, t); if(t<18) printf(“lower weight!\n”); else if(t<25) printf(“normal weight!\n”); else if(t<27) printf(“higher weight!\n”); else printf(“too fat!\n”); }
21.5条件运算符 1、条件运算符?:(唯一的三目运算符) 优先级仅高于赋值类,是右结合性 2、条件表达式的一般形式: 表达式1?表达式2:表达式3 3、执行过程 先计算表达式1, 若表达式1的值为真(非0),则计算表达式2的值, 该条件表达式的值即为表达式2的值; 若表达式1的值为假(零),则计算表达式3的值, 该条件表达式的值即为表达式3的值
2.1.5 条件运算符 1、条件运算符 ? : ( 唯一的三目运算符) 优先级仅高于赋值类, 是右结合性 3、执行过程: 先计算表达式1 , 若表达式1的值为真(非0), 则计算表达式2的值, 该条件表达式的值即为表达式2 的值; 若表达式1的值为假(零), 则计算表达式3 的值, 该条件表达式的值即为表达式3 的值 2、条件表达式的一般形式 : 表达式1 ? 表达式2 : 表达式3
21.5条件运算符 例max=a>b?a:b+→max=(a>b?a:b+1) a>b? a: e>d?c:d- a>b? a:(e>d?c: d) 注意: (1)表达式1,表达式2和表达式3的数据类型可以不相同 (2)条件表达式的值的数据类型与表达式2,表达式3中 数据类型较高的那个保持一致 如7>5?10:1.4条件表达式的值为10.0
例 max=a>b? a : b+1 a>b? a : c>d? c : d 注意: (1)表达式1, 表达式2和表达式3 的数据类型可以不相同 (2) 条件表达式的值的数据类型与表达式2, 表达式3中 数据类型较高的那个保持一致 如 7>5? 10 : 1.4 条件表达式的值为10.0 a>b? a : (c>d? c : d ) max=(a>b? a : b+1) 2.1.5 条件运算符
21.5条件运算符 当中的语句为简单赋值语句时, 可以用条件表达式来取代语句 例求3个数中的最大数用条件表达式实现 include<stdio.h> #include<stdio.h> void main( void main( i int max; int max if (x>y) max=x maxx>y ?x: y else max-y max=imax ?z: max; if(zemax) max=z; printi(max=%d”,max); prin(“max=%d”,max);}
用条件表达式实现 #include<stdio.h> void main( ) { int max; max=x>y ? x : y ; max=z>max ? z : max; printf(“max=%d”,max); } ❖ 当if 中的语句为简单赋值语句时, 可以用条件表达式来取代if 语句 例 求3个数中的最大数 #include<stdio.h> void main( ) { int max; if (x>y) max=x; else max=y; if (z>max) max=z; printf(“max=%d”,max); } 2.1.5 条件运算符