选择结构程序设计课件

上传人:磨石 文档编号:243001932 上传时间:2024-09-13 格式:PPT 页数:22 大小:204KB
返回 下载 相关 举报
选择结构程序设计课件_第1页
第1页 / 共22页
选择结构程序设计课件_第2页
第2页 / 共22页
选择结构程序设计课件_第3页
第3页 / 共22页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,关系运算符和关系表达式,逻辑运算符和逻辑表达式,if,语句,条件运算符,? :,switch,语句,第,4,章 选择结构程序设计,程序的三种基本结构,结构化程序设计,基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto),结构化程序:由三种基本结构反复嵌套构成的程序叫,优点:结构清晰,易读,提高程序设计质量和效率,三种基本结构,顺序结构,A,B,A,B,流程图,N-S,图,P,A,B,真,假,P,B,A,真,假,选择结构,k,A1,A2,Ai,An,k=k2,k=k1,k=kn,k=ki,.,.,二分支选择结构,多分支选择结构,循环结构,当型循环结构,直到型循环结构,P,A,假,真,当P,为真,A,A,P,真,假,A,直到P,为真,关系运算和逻辑运算,关系运算符和关系表达式,关系运算符有六个: = 3 、 x+103 & x+105,关系运算和逻辑运算的结果是逻辑量,即 “真”或“假”。,所学运算符优先级:,!、算术运算、关系运算、&、| 、赋值运算,选择型程序设计,if,语句(条件选择语句),if,语句的三种形式,形式一:,格式:,if (expression),statement,执行过程:,expr,statement,非,0,=0,例:if (xy),printf(“%d”,x);,expr,statement1,statement2,非0,=0,形式二,:,格式,:,if (expression),statement1,else,statement2,执行过程:,例:if (xy) max=x;,else max=y;,形式三:,格式:,if ( expr1 ) statement1,else if (expr2 ) statement2,else if (expr3 ) statement3,., else statementn ,expr1,statemnt1,非,0,=0,expr2,expr3,statemntn,statemnt3,statemnt2,非,0,非,0,=0,=0,执行过程:,例:if (salary1000) index=0.4;,else if (salary800) index=0.3;,else if (salary600) index=0.2;,else if (salary400) index=0.1;,else index=0;,如:if(a=b,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”,if(xy),x=y; y=x;,else,x+; y+;,printf(“%d,%dn”,x,y);,Compile Error!,/*ch4_1.c*/,#include ,main(), int x,y;,printf(Enter an integer:);,scanf(%d,y=x;,if(yabsolute value:%dn,x,y);,例 求一个数的绝对值,运行:Enter an integer:,-12,integer:-12-absolute value :12,/*ch4_2.c*/,#include ,main(), int a,b;,printf(Enter integer a:);,scanf(%d,printf(Enter integer b:);,scanf(%d,if(a=b),printf(a=bn);,else,printf(a!=bn);,例 输入两个数并判断两数相等否,运行:Enter integer a:12,Enter integer b:12,a=b,运行:Enter integer a:12,Enter integer b:9,a!=b,/*ch4_3.c*/,#include ,main(), char c;,printf(Enter a character:);,c=getchar();,if(c=0,else if(c=A,else if(c=a,else printf(The character is other charactern);,例 判断输入字符种类,运行:Enter a character:,The character is a control character,运行:Enter a 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,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,if else 配对原则:,缺省 时,else总是和它上面离它最近的未配对的if 配对,if(),if(),if(),else.,else.,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,正确配对方法:加 ,例 考虑下面程序输出结果:,main(), int x=100,a=10,b=20;,int v1=5,v2=0;,if(ay) printf(XYn);,else printf(XYn);,else,printf(X=Yn);,运行:Enter integer x,y:12,23,XY,Enter integer x,y:12,12,X=Y,条件运算符的使用,当ifelse结构中的语句是表达式语句时, 就可以使用条件运算符“ ? :”了,,即下列ifelse语句: ,if (表达式1) 表达式2;,else 表达式3;,用条件运算符写成通用形式即为,表达式1 ? 表达式2 :表达式3,如下列语句段: ,x=10; ,if (x9) y=100;,else y=200;,可以写成:,x=10; ,y=x9? 100: 200;,例 3 打印a, b两个数中大者。,方法一: 用ifelse结构实现:,main( ), int a, b; ,scanf(%d, %d, ,if (ab) printf(max=%dn, a); ,else printf(max=%dn, b); ,方法二,:,用条件运算符实现:,main( ) , int a, b; ,scanf(%d, %d, ,printf(max=%dn, ab? a:b); ,switch,语 句,switch语句的形式:,switch(表达式), case 常量1: 语句段1,case 常量2: 语句段2,default: 语句段n,switch语句的执行过程:,首先,计算表达式的值,然后,判断表达式的值与哪个常量表达式的植相等,就转去执行该表达式后面的语句,并继续执行下面的语句.,说明:,常量表达式,其值必须互不相同,语句标号作用,必须用,break,跳出,case,后可包含多个可执行语句,且不必加 ,switch,可嵌套,例 switch(score), case 5: printf(“Very good!”);,case 4: printf(“Good!”);,case 3: printf(“Pass!”);,case 2: printf(“Fail!”);,default : printf(“data error!”);,例 void main(), int x=1,y=0,a=0,b=0;,switch(x), case 1:,switch(y), case 0: a+; break;,case 1: b+; break;,case 2: a+;b+; break;,case 3: a+;b+;,printf(“na=%d,b=%d”,a,b);,a=2,b=1,根据输入字符输出字符串,#include ,main(), int c;,printf(Enter m or n or h or other:);,c=getchar();,switch(c), case m: printf(nGood morning!n);break;,case n: printf(nGood night!n); break;,case h: printf(nHello!n); break;,default : printf(n?n); break;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 方案规范


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!