资源描述:
《第2章 选择结构——2. if-else-if》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章选择结构if-else-if§2.3if语句一.If语句的三种基本形式(1)if(表达式)语句if(x>y)printf(“%d”,x);表达式语句真(非0)假(0)§2.3if语句(续)(2)if(表达式)语句1else语句2例:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);条件语句1语句2非00§2.3if语句(续)(3)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n§2.3if语句(续)例:if(number>500)cost=0.15;e
2、lseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;§2.3if语句(续)说明:(1)3种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式。例如,if(a==b&&x==y)printf(“a=b,x=y”);在执行if语句时先对表达式求解,若表达式指为0,按假处理,若值非0,按真处理,执行指定语句。例如,if(3)printf(“ok”);if(‘a’)printf(“%d”,’a’);都是合法的§2.3if语句(续
3、)说明:(2)第二,第三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。例如,if(x>0)printf(“%f”,x);elseprintf(“%f”,-x);但注意,上面不是两个语句,而是一个if语句,Else子句不能作为语句单独使用。§2.3if语句(续)说明:(3)在if和else后面可以只含有一个内嵌的操作语句,也可以有多个操作语句,此时用花括号{}将几个语句括起来成为一个复合语句。例如,if(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));prin
4、tf(“area=%6.2f”,area);}elseprintf(“itisnotatrilateral”);注意第五行花括号}外面不需再加分号;。因为{}内是一个完整的复合语句,不需要附加分号。§2.3if语句(续)例2.1输入两个实数,按代数值由小到大的顺序输出这两个数。#includevoidmain(){floata,b,t;scanf(“%f,%f”,&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2f”,a,b);}yna>bT=aA=bB=t§2.3if语句(续)例2.2输入三个
5、数a,b,c,要求按由小到大的顺序输出。Ifa>b将a和b对换(a是a,b中小者)Ifa>c将a和c对换(a是a,c中小者,因此a是三者中最小者)Ifb>c将b和c对换(b是b,c中小者,也是三者中次小者)§2.3if语句(续)#includevoidmain(){floata,b,c,t;scanf(“%f,%f,%f”,&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);
6、}§2.3if语句(续)二.If语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。形式:if()if()语句1else语句2elseif()语句3else语句4内嵌if§2.3if语句(续)匹配规则:else总是与它上面的,最近的,同一复合语句中的,未配对的if语句配对。例:If()if()语句1elseif()语句2else语句3例:If(){if()语句1}elseif()语句2else语句3当if和else数目不同时,可以加花括号来确定配对关系。§2.3if语句(续)-1(x<0)例2.3有一个函数y=0(x=0),编一程序,输入一个x值,输出y值
7、。1(x>0)算法1:算法1:输入x输入x若x<0,则y=-1若x<0,则y=-1若x=0,则y=0否则:若x>0,则y=1若x=0,则y=0输出y若x>0,则y=1输出yîíì§2.3if语句(续)#includevoidmain(){intx,y;scanf(“%d”,&x);{程序段}printf(“x=%d,y=%d”,x,y);}§2.3if语句(续)上例中的程序段有四个,请判断哪个是正确的?程序1:程序2:if(x<0)if(x>=0)Y=-1;if(x>0)y=1;elseelsey=0;if(x==0