欢迎来到天天文库
浏览记录
ID:40635588
大小:1.43 MB
页数:53页
时间:2019-08-05
《选择结构程序设计1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章选择结构程序设计1顺序结构与选择结构流程对照顺序结构选择结构p代表一个条件,当p条件成立(或称为“真”)时执行A,否则执行B。注意,只能执行A或B之一。两条路径汇合在一起然后出口。2两个选择结构的程序实例:【例】if条件语句。if(x>0)return1;elsereturn–1;【例】switch多分支选择语句。switch(month){case1:case3:day=31;case4:case6:day=30;}34.1if语句4.1.1if语句的三种基本形式1、if结构if语句单分支选择结构的语法形式是:if(表达式)语句1;【例】if(x>0)y=1;其中“x>0”是一个关
2、系表达式。语义图表达式语句1非004【例】下列错误的语句是()。A)if(a>b)printf(“%d”,a);B)if(a>0);a=n;C)if(2)a=m;D)if(&&);a=m;D5【例】输入一个整数,判断其奇偶性,若为奇数就显示输出。按照语法含义图写出程序的流程,并编写程序代码:是奇数吗?用printf语句输出否是6程序如下:#includemain(){intx;scanf(“x=%d”,&x);if(x%2!=0)printf(“%disoddnumber”,x);}运行结果:x=77isoddnumber72、if…else结构if语句双分支选择结构
3、的语法形式为:if(表达式)语句1;else语句2;【例】if(x>0)y=1;elsey=-1;语义图8【例】从键盘上输入两个整数,输出其中的大数。写出选择结构的语义图:语义图x>y输出x输出y9【题目】从键盘上输入两个整数,输出其中的大数。#includemain(){intx,y;printf(“Enterxandy:”);/*为了提高程序的可读性*/scanf(“%d%d”,&x,&y);printf(“x=%d,y=%d”,x,y);/*提高程序的可读性*/if(x>y)printf(“max=%d”,x);elseprintf(“max=%d”,y
4、);}10思考问题:1、如果双边if语句if(表达式)语句1;else语句2;语句1和语句2是个语句体,该如何表示?【例】比较a和b的大小,如果a>b,交换a和b的值,否则什么都不做。if(a>b)temp=a;a=b;b=temp;else;if(表达式){语句体1;}else{语句2;}【例】if(a>b)temp=a;a=b;b=temp;复合语句{}11【例】写出下面程序的输出结果。运行结果:123、if…elseif结构if…elseif语句为多分支选择结构,一般形式为:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;……elseif(表达
5、式n)语句n;else语句n+1;13多分支选择结构if…elseif语句的语义图:14【例】有一函数:-1(x<0),实现输入一个x值,输出y值。y=0(x=0)1(x>0)分析:输入x如果x<0,则y=-1输出y;否则:如果x=0,则y=0输出y;否则x>0,则y=1输出y;15164.1.2if语句的嵌套形式在if语句中又包含一个或多个if语句称为if语句的嵌套。语义图表达式非00表达式22语句3语句4非00语句1表达式11语句2非00if(表达式)if(表达式11)语句1;else语句2;elseif(表达式22)语句3;else语句4;语法形式17【使用注意事项】else子句总是
6、与它前面最近的、尚未配对的if子句进行匹配;【例】if(a==b)if(b==c)printf(“a=b=c”);elseprintf(“b!=c”);{}184.2条件表达式条件运算——条件运算符连接表达式构成的运算;1、条件运算符形式:?:2、条件表达式形式:表达式1?表达式2:表达式3语义:先计算表达式1的值,若结果为非0,则以表达式2的值作为整个条件表达式的值;若为0,则以表达式3的值作为整个表达式的值;19执行过程如下:20【例】(x>0)?1:-1若表达式1为真,返回1,否则返回-1说明:表达式2和表达式3通常为同类型,若不同则整个条件表达式的数据类型取两个表达式中较高
7、的类型;各类运算符的优先级:算术运算符关系运算符逻辑运算符条件运算符赋值运算符高低表达式1表达式2表达式321条件运算符的结合方向是“自右至左”的;【例】a>b?a:c>d?c:da>b?a:(c>d?c:d)【例】设有:inta=1,b=2,c=3,d=4,m=2,n=2;求下列表达式的值。(1)a+b>c?m*a:m*b4224.3switch语句看下面这个例子:if(ch==‘Z’)z=z+1;elseif(ch=
此文档下载收益归作者所有