C程序设计ch04-2选择结构程序设计.ppt_第1页
C程序设计ch04-2选择结构程序设计.ppt_第2页
C程序设计ch04-2选择结构程序设计.ppt_第3页
C程序设计ch04-2选择结构程序设计.ppt_第4页
C程序设计ch04-2选择结构程序设计.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章 选择结构程序设计 v4.2 C语句概述 C语句:以“;”作分隔符,编译后产生机器指令. C语句分类 v表达式语句:表达式加分号构成。 v空语句: ; v程序控制语句(9种): if( )else switch for( ) while( ) dowhile( ) continue break goto return 分支 循环 辅助控制 如 total=total+limit; a=3; func( ); printf(“Hello,world!n”); v复合语句:用 括起来的一组语句 一般形式: 数据说明部分; 执行语句部分; “”后不加分号 语法上和单一语句相同 复合语句可嵌套 三种基本结构 v顺序结构 A B A B 流程图N-S图 P AB 真假 P BA 真假 v选择结构 k A1A2AiAn k=k2 k=k1 k=kn k=ki l二分支选择结构 l多分支选择结构 v循环结构 l当型循环结构 l直到型循环结构 P A 假 真 当P为真 A A P 真 假 A 直到P为真 注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构 v4.4 分支选择结构 简单if语句 (p65) v格式:if (expression) statement v执行过程: expression statement 非0 =0 例:if (xy) printf(“%d”,x); 例 读入a,b,c,d四个整数,输出(a+b)/(c-d)。 if (c-d!=0) ratio=(float)(a+b)/(c-d); printf(“ Ratio=%fn”,ratio); /* absolute value */ #include int main() int x,y; printf(“Enter an integer:“); scanf(“%d“, y=x; if(yabsolute value:%dn“,x,y); return 0; 例 求一个数的绝对值 运行:Enter an integer:-12 integer:-12absolute value :12 expression statement1statement2 非0=0 if else语句 p63 v格式:if (expression) statement1 else statement2 v执行过程: 例 if (c-d!=0) ratio=(float)(a+b)/(c-d); printf(“ Ratio=%fn”,ratio); else printf(“c-d is zeron”); 例 if (xy) max=x; else max=y; 转为表达式: max = (xy) ? x : y 这里引入了运算符 p40 条件运算符 ?: else if梯状 p66 v格式: if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else statementn expr1 statemnt1 非0 =0 expr2 expr3 statemntnstatemnt3statemnt2 非0 非0 =0 =0 v执行过程: if (value1000) takeoff=0.25; else if (value800) takeoff=0.2; else if (value600) takeoff=0.15; else if (value400) takeoff=0.1; else takeoff=0; 如:if(a=b if(3) printf(“OK”); if(a) printf(“%d”,a); 例 考虑下面程序的输出结果: #include int main() int x,y; scanf(“%d,%d”, if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y); return 0; Compile Error! if后面的表达式类型任意 语句可以是复合语句 if(x) if(x!=0) if(!x) if(x=0) /*Be equal or not*/ #include int 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“); return 0; 例 输入两个数并判断两数相等否 运行:Enter integer a:12 Enter integer b:12 a=b 运行:Enter integer a:12 Enter integer b:9 a!=b /*char type*/ #include int main() char c; printf(“Enter a character:“); c=getchar(); if(c=0 printf(“Enter integer x,y:“); scanf(“%d,%d“, if(x!=y) if(xy) printf(“XYn“); else printf(“XY Enter integer x,y:12,12 X=Y 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 正确配对方法:加 例 考虑下面程序输出结果: int main() int x=100,a=10,b=20; int v1=5,v2=0; if(a60n”); break; switch(m) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 运行结果:m为5时,输出: Very good! Good! Pass! Fail! data error! 例 int 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); return 0; 运行结果:a=2,b=1 /*Select Label*/ #include int main() int c; printf(“Enter m or n or h or other:“); c=getchar(); switch(c) case m: pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论