C程序设计 主讲教师:汪闽 南京师范大学 地图学与地理信息系统04级 专业选修课
C程序设计 南京师范大学 地图学与地理信息系统04级 专业选修课 主讲教师: 汪闽
第四章选择结构设讣 4.1选择结构简介 4.2if语 4.3 switch语旬 4.4选择结构程序示例
4.2 if 语句 4.3 switch 语句 4.1 选择结构简介 4.4 选择结构程序示例 第四章 选择结构设计
4.1选择结构简介 真 假 P 真 假 二分支选择结构 A B B k kkn kk1 k2 kki ●多分支选择结构 Al a2 An
P A B 真 假 P A B 真 假 k A1 A2 Ai An k=k2 k=k1 k=kn k=ki ... ... ⚫二分支选择结构 ⚫多分支选择结构 4.1 选择结构简介
42近语句 形式 expr 格式:if( expression) 非0 statement statement 执行过程 例:if(x>y) ●形式二 printf(" % X) 0 ◆格式:if( expression) expr statement1 else statement 1 statement2 statement2 ◆执行过程 if(x>y) maxX else max y
形式一: 格式:if (expression) statement 执行过程: expr statement 非0 =0 例:if (x>y) printf(“%d”,x); expr statement1 statement2 ⚫形式二: 非0 =0 ◆格式:if (expression) statement1 else statement2 ◆执行过程:例:if (x>y) max=x; else max=y; 4.2 if 语句
if expr1) statement 1 形式三: else if (expr2) statement2 else if (expr3) statements ◆执行过程 else statement 列:if( salary>1000) index. 4 else if (salary>800) index.3 else if (salary>600) index-=0. 2 else if (salary>400) index=0. 1 else index=O statemnt1 statemnt2 statemnt3statemntn
形式三: if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 …... [ else statementn ] expr1 statemnt1 非0 =0 expr2 expr3 statemnt2 statemnt3 statemntn 非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语句的说明 ◆if后面的表达式类型任意,必须用 ◆语旬可以是复爸语创(ab&&x=y) printf( a=b,x=y) ◆ele子旬(可选)是翻句pint(“OK”) 一部分,必须与劝像 printf(%d,a) 人mm f(x)y) 2 y-x, Compile error Ⅹ++;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(x) if(x!=0) if(!x) if(x==0) ◆if后面的表达式类型任意,必须用() ◆语句可以是复合语句 ◆else子句(可选)是if语句的 一部分,必须与if配对使用, 不能单独使用。 ◆当if和else下面的语句组,仅 由一条语句构成时,也可不使 用复合语句形式(即去掉花括 号)。 例 考虑下面程序的输出结果: #include 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! ⚫对If语句的说明
◆if语旬嵌套 续If语句说明 般形式 expr if(expr1) if(expr 2) if(expI 内嵌if statement l statement 1 内嵌if Ise statement statement2 if (expr1) statement l if(expr1) if(expr2)statement1 else statement2」因嵌i if(expr3) else statement 3 内if if(expr) statement statement4嵌if statement 4
一般形式: if (expr1) if (expr2) statement1 else statement2 else if(expr3) statement3 else statement4 内嵌if 内嵌if if (expr1) if (expr2) statement1 else statement2 内嵌if if (expr1) if (expr2) statement1 else statement3 内嵌if if (expr1) statement1 else if(expr3) statement3 else statement4 内嵌if ◆if语句嵌套 …续If语句说明
续If语句的说明 例输入两数并判断其大小关系 ch4 4c/ #include main( Int x, y 运行: Enter integer x,y:12,23 printf(" Enter integer x,y: " XY if(xl=y Enter integer x,y: 12, 12 if(x>y) printf("X>Yn X-Y else printf("XYn) else printf("X=Yin");
/*ch4_4.c*/ #include main() { int x,y; printf("Enter integer x,y:"); scanf("%d,%d",&x,&y); if(x!=y) if(x>y) printf("X>Y\n"); else printf("XY Enter integer x,y:12,12 X==Y 例 输入两数并判断其大小关系 …续If语句的说明
续If语句的说明 ◆if~else配对原则 缺省{}时,lse总是和它上面离它最近的未配 对的i配对 f(…..) if(…) else
– 缺省{ }时,else总是和它上面离它最近的未配 对的if配对 if(……) if(……) if(……) else…... else…... else…... ◆if ~ else 配对原则 …续If语句的说明
…续If语句的说明 例:if(a=-b) printf(a=-b=c”) else printf( a=b”) 修改:if(a-b) i if(b==c) Dria=b=c”); else printf(a!=b) 实现if~else正确配对方法:加{}
例: if (a==b) if(b==c) printf(“a==b==c”); else printf(“a!=b”); 修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”); 实现if ~ else 正确配对方法:加{ } …续If语句的说明