第五章选择结构程序设计 §5.1程序的三种基本结构 ★结构化程序设计 ◆基本思想:任何程序都可以用三种基本结构表示,限制使 用天条件转移语旬(goto) 结构化程序:由三种基本结构反复嵌套构成的程序叫 ◆优点:结构清晰,易读,提高程序设计质量和效率 ★三种基本结构 ◇顺序结构 B B 流程图 N-S图
第五章 选择结构程序设计 §5.1 程序的三种基本结构 结构化程序设计 ❖基本思想:任何程序都可以用三种基本结构表示,限制使 用无条件转移语句(goto) ❖结构化程序:由三种基本结构反复嵌套构成的程序叫~ ❖优点:结构清晰,易读,提高程序设计质量和效率 三种基本结构 ❖顺序结构 A B A B 流程图 N-S图
令选择结构 真 假 真假 ●二分支选择结构 A B B ●多分支选择结构 K=? K=? k=kn F K=1 k=kI =k2 k=ki K=2 A2 An Ai A2 Al
P A B 真 假 P A B 真 假 ❖选择结构 K=? A1 A2 Ai An k=k2 k=k1 k=kn k=ki ... ... ⚫二分支选择结构 ⚫多分支选择结构 K=? K=1 K=2 。。 T T T F F F Ai A2 A1
◇循环结构 假 当P为真 ◎当型循环结构 真 ◎直到型循环结构 A A 假 直到P为真 P 真 注:A,B,A1.…An可以是一个单语句,也可以是一个基本结构
❖循环结构 ⚫当型循环结构 ⚫直到型循环结构 P A 假 真 当P为真 A A P 真 假 A 直到P为真 注:A,B,A1….An可以是一个简单语句,也可以是一个基本结构
5.2过语旬(永件选择语旬) ☆if语旬的三种形式 0 expr ●形式一: ↓非0 格式:if( expression) statement statement ◆执行过程: 例:if(x>y) 非0 =0 expr printf(%d”,x); statementIstatementl statement2 else ◆执行过程: S例:if(x>y)max=x; e se max-y
§5.2 if 语句(条件选择语句) ❖if 语句的三种形式 ⚫形式一: ◆格式: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;
●形式三 if( expr1) statement ◆格式: else if(expr2) statement2 else if (expr3) statements ◆执行过程 else statement I 0 例:if( salary100 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 ( 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后面的表达式类型任意 ◆语旬可以是复合语旬 如:a=b&x printf( (a=b,X=y); (3 printf(OK 例考虑下面程序的输出结果: #include main i int x,y; scant(“%d,%d”,&x,&y); if(x>y) V-X Compile error else 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 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 mainO int x, y, printf( Enter an integer: ) scanf("od", &x); y-x, if(yabsolute value: %dn",x, y) 运行: Enter an integer:-12 integer: -12--->absolute value: 12
#include main() { int x,y; printf("Enter an integer:"); scanf("%d",&x); y=x; if(yabsolute value:%d\n",x,y); } 例 求一个数的绝对值 运行:Enter an integer:-12 integer:-12--->absolute value :12
例输入两个数并判断两数相等否 ch42.c*/ Include mainO int a b 运行: Enter integer a:12 printf("Enter integer a Enter integer b: 12+ scantron &a) a==b printf(" Enter integer b: scanf("d", &b) if(a-b) 运行: Enter integer a:12,J printf("a==bn") else Enter integer b: 9. printf("al=bn") al=b
/*ch4_2.c*/ #include main() { int a,b; printf("Enter integer a:"); scanf("%d",&a); printf("Enter integer b:"); scanf("%d",&b); if(a==b) printf("a==b\n"); else printf("a!=b\n"); } 例 输入两个数并判断两数相等否 运行:Enter integer a:12 Enter integer b:12 a==b 运行:Enter integer a:12 Enter integer b:9 a!=b
例判断输入字符种类 #include main( i char c printf("Enter a character c-getcharo if(c=o'&&c='A'&&c='a'&&c=z) printf("The character is a lower letter n else printf("The character is other characterin") 运行: nter a character:F1 The character is other character
#include main() { char c; printf("Enter a character:"); c=getchar(); if(c='0'&&c='A'&&c='a'&&c<='z') printf("The character is a lower letter\n"); else printf("The character is other character\n"); } 例 判断输入字符种类 运行:Enter a character: The character is a control character :8 The character is a digit 运行: Enter a character: D The character is a capital letter 运行: Enter a character: h The character is a lower letter 运行: Enter a character:F1 The character is other character
☆i语旬嵌賽 般形式: if(expr1) if(expr1) if(expr2) if (expr2) 内嵌if statement statement1 内嵌if else ese statement statement2 if(expr1) statement1 if(expr1) if(expr2) statement, eise dIse f(expr3) statement2内嵌if else statement3内嵌if if(expr3) statements else statement statement4均嵌ir
❖if语句嵌套: ⚫一般形式: 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