条件表达式 8一般形式:表达式1?表达式2:表达式3 执行过程 功能:相当于条件语句,但不能取代一舭ⅲ语旬 非0 表达式L 0 表达式2 表达式3 例if(a>b) printf("%d", a);< printf( %d", a>b?a: b); else printf(%od”,b);
条件表达式 ❖一般形式: 表达式1 ?表达式2 :表达式3 ❖执行过程 ❖功能:相当于条件语句,但不能取代一般if语句 例 if (a>b) printf(“%d”,a); else printf(“%d”,b); printf(“%d”,a>b?a:b); 表达式1 表达式2 表达式3 非0 =0 语 言 程 序 设 计 第 四 章 选 择 结 构 设 计 C
853选择型程序设计 ★if语句(条件选择语旬) 表达式 0 if语旬的三种形式 非0 ●形式一: 语句 ◆格式:if(褒达式) 语句 ◆执行过程: Ro]: if(x>y) printf(f % ed”x) 非0 表达式 语句1 else 语句1 语句2 语句2 ◆执行过程 例:if(x>y)max=x; eise max-y
§5.3 选择型程序设计 if语句(条件选择语句) ❖if语句的三种形式 ⚫形式一: ◆格式:if (表达式) 语句 ◆执行过程: 表达式 语句 非0 =0 例:if (x>y) printf(“%d”,x); 表达式 语句1 语句2 非0 =0 ⚫形式二: ◆格式:if (表达式) 语句1 else 语句2 ◆执行过程:例:if (x>y) max=x; else max=y;
if( expr1) statement ●形式三: ◆格式 else if (expr2) statement2 else if (expr3) statement ◆执行过程: ese statement I 例:if( (salary>10000 index=0.4 else if(salary>800) index=0.3 else if (salary>600) index=0.2 else if(salary>400) index=0.1 eise index=0 statemnt statemnt statement statement
⚫形式三: ◆格式: if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 …... [ else statementn ] expr1 statemnt 1 非0 =0 expr2 expr3 statemnt n statemnt 3 statemnt 2 非0 非0 =0 =0 ◆执行过程: 例:if (salary>1000) index=0.4; else if (salary>800) index=0.3; else if (salary>600) index=0.2; else if (salary>400) index=0.1; else index=0;
●说明: ◆if后面的表达式类型任意 ◆语旬可以是复合语旬 :i(a=b&&x=:y) printf(“a=b,x=y”); 3)prit(“OK”); 例考慮下面程序的输出结果 #include <stdio. h> maino i int x, y; scanf(%od, %d", &x, &y); x-y,y-x, Compile error! eise x++;y++; printf(“%d,%dn”,xy);
如:if(a==b&&x==y) printf(“a=b,x=y”); if(3) printf(“OK”); if(‘a’) printf(“%d”,’a’); ⚫说明: ◆if后面的表达式类型任意 ◆语句可以是复合语句 ◆ if(x) if(x!=0) if(!x) if(x==0) 例 考虑下面程序的输出结果: #include <stdio.h> main() { int x,y; scanf(“%d,%d”,&x,&y); if(x>y) x=y; y=x; else x++; y++; printf(“%d,%d\n”,x,y); } Compile Error!
例求一个数的绝对值 井 include< stdio. h> main int x,y5 printf( " Enter an integer scanf(%d", &x); y-x, if(y<0) printf(integer: %od--->absolute value: %d\n"x, y); 运行: Enter an integer:12 integer: -12--->absolute value: 12
#include <stdio.h> main() { int x,y; printf("Enter an integer:"); scanf("%d",&x); y=x; if(y<0) y= -y; printf("\ninteger:%d--->absolute value:%d\n",x,y); } 例 求一个数的绝对值 运行:Enter an integer:-12 integer:-12--->absolute value :12