资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1/45第四章 选择结构程序设计第四章第四章2/45第四章 选择结构程序设计ifif语句语句1.If1.If语句的三种基本形式语句的三种基本形式(1)if (1)if (表达式)表达式) 语句语句例:例: if(xy) printf(“%d”,x);表达式表达式语句语句真(非0)假(0)3/45第四章 选择结构程序设计 if if语句语句1、 if(表达式)(表达式) 语句语句 如:如: if (xy) printf(“%d”,x); if(x=3) printf(“%d”,x); if(x=3) printf( ); if(a) printf( ); if(3) printf( );4/45第四章 选择结构程序设计 if if语句语句(2)if(2)if(表达式表达式) ) 语句语句1 1 else else 语句语句2 2例:例: if (xy) printf(“%d”,x); else printf(“%d”,y); 条件条件 语句句1 语句句2YN5/45第四章 选择结构程序设计 if if语句语句(3)if(3)if(表达式表达式1 1)语句)语句1 1 else if( else if(表达式表达式2)2)语句语句2 2 else if( else if(表达式表达式3)3)语句语句3 3 else if( else if(表达式表达式m)m)语句语句m m else else 语句语句n n6/45第四章 选择结构程序设计 if if语句语句例:例: if (number500)cost=0.15;if (number500)cost=0.15; else if(number300)cost=0.10; else if(number300)cost=0.10; else if(number100)cost=0.075; else if(number100)cost=0.075; else if(number50)cost=0.05; else if(number50)cost=0.05; else cost=0; else cost=0;7/45第四章 选择结构程序设计 if if语句语句说明:说明:1、 if语句中的表达式一般为逻辑表达式或关系表达式语句中的表达式一般为逻辑表达式或关系表达式2、每个语句后都要有一个分号、每个语句后都要有一个分号3、在、在if和和else后面可以只有一个语句,也可以有多个后面可以只有一个语句,也可以有多个语句,此时用花括号语句,此时用花括号“ ”将几个语句括起来成为一将几个语句括起来成为一个复合语句。个复合语句。 8/45第四章 选择结构程序设计 if if语句语句例例4.1 4.1 输入两个实数,按代数值由小到大的顺序输出这两个数。输入两个实数,按代数值由小到大的顺序输出这两个数。#include#include void main()void main() float a,b,t; float a,b,t; scanf(scanf(“%f,%f%f,%f”,&a,&b,&a,&b);); if(ab)if(ab) t=a; t=a; a=b; a=b; b=t; b=t; printf( printf(“%5.2f,%5.2fn%5.2f,%5.2fn”,a,b);,a,b); ynabt=aa=bb=t9/45第四章 选择结构程序设计 if if语句语句例4.2 输入三个数a,b,c,要求按由小到大的顺序输出。if ab 将a和b对换if ac 将a和c对换if bc 将b和c对换abacbca和b交换a和c交换c和b交换yyynn10/45第四章 选择结构程序设计 if if语句语句 #include #include void main ( ) void main ( ) float a,b,c,t;float a,b,c,t; scanf(“%f,%f,%f”,&a,&b,&c); scanf(“%f,%f,%f”,&a,&b,&c); if(ab)if(ab) t=a;a=b;b=t; t=a;a=b;b=t; if(ac) if(ac) t=a;a=c;c=t; t=a;a=c;c=t; if(bc) if(bc) t=b;b=c;c=t; t=b;b=c;c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); printf(%5.2f,%5.2f,%5.2fn,a,b,c); 11/45第四章 选择结构程序设计 if if语句语句二二.if.if语句的嵌套语句的嵌套在在ifif语句中又包含一个或多个语句中又包含一个或多个ifif语句称为语句称为ifif语句的嵌套。语句的嵌套。形式:形式:if()if()if() if() 语句语句1 1else else 语句语句2 2elseelseif() if() 语句语句3 3else else 语句语句4 4内嵌内嵌ifif12/45第四章 选择结构程序设计 if if语句语句匹配规则:匹配规则:elseelse总是与它上面的,最近的,统一复合语句中的,未配总是与它上面的,最近的,统一复合语句中的,未配对的对的ifif语句配对。语句配对。例:例:if( )if( )if( ) if( ) 语句语句1 1elseelseif( ) if( ) 语句语句2 2else else 语句语句3 3例:例:if( )if( )if() if() 语句语句11elseelseif( ) if( ) 语句语句2 2else else 语句语句3 3当当ifif和和elseelse数目不同时,可以加数目不同时,可以加花括号花括号来确定配对关系。来确定配对关系。13/45第四章 选择结构程序设计 if if语句语句 -1 (x0)算法算法1 1: 算法算法2 2:输入输入x x 输入输入x x若若x0,x0,则则y=-1 y=-1 若若x0,x0,x0,则则y=1 y=1 若若x=0,x=0,则则y=0y=0输出输出y y 若若x0,x0,则则y=1y=1 输出输出y y 14/45第四章 选择结构程序设计4.3 if4.3 if语句语句 #includevoid main( ) int x,y; scanf(“%d”,&x); 程序段程序段 printf(“x=%d,y=%dn”,x,y); 15/45第四章 选择结构程序设计4.3 if4.3 if语句语句上例中的程序段有四个,请判断哪个是正确的?上例中的程序段有四个,请判断哪个是正确的?程序程序1: 程序程序2: if(x=0) y=-1; if(x0) y=1; else else y=0; if(x=0) y=0; else y=-1; else y=1;程序程序3: 程序程序4: y=-1; y=0; if(x!=0) if(x=0) if(x0) y=1; if(x0) y=1; else y=0; else y=-1;正正确确正正确确错错误误错错误误16/45第四章 选择结构程序设计switchswitch语句语句switchswitch语句的格式:语句的格式:(表达式)(表达式) 常量表达式:语句常量表达式:语句 常量表达式:语句常量表达式:语句 常量表达式:语句常量表达式:语句 :语句:语句 17/45第四章 选择结构程序设计 switchswitch语句语句例例: :要求按照考试成绩的等级输出百分制分数段,用要求按照考试成绩的等级输出百分制分数段,用switchswitch语句实现:语句实现:()()();); ();); ();); ();); ();); 18/45第四章 选择结构程序设计 switchswitch语句语句说明:(1)(1)后面括弧内的后面括弧内的“表达式表达式”可以为任何类型。可以为任何类型。(2) (2) 当表达式的值与某一个后面的常量表达式的值相当表达式的值与某一个后面的常量表达式的值相 等时,就执行此后面的语句,若所有的等时,就执行此后面的语句,若所有的 中的常量表达式的值都没有与表达式的值匹配的,就执行中的常量表达式的值都没有与表达式的值匹配的,就执行 后面的语句。后面的语句。(3) (3) 每一个的常量表达式的值必须互不相同,否则就每一个的常量表达式的值必须互不相同,否则就 会出现互相矛盾的现象(对表达式的同一个值,有两种或会出现互相矛盾的现象(对表达式的同一个值,有两种或 多种执行方案)。多种执行方案)。19/45第四章 选择结构程序设计 switchswitch语句语句(4) (4) 各个和的出现次序不影响执行结各个和的出现次序不影响执行结 果。例如,可以先出现果。例如,可以先出现“:”,再出现,再出现 “ “ :”,然后是,然后是“ :”。(5) (5) 执行完一个后面的语句后,流程控制转移到下一执行完一个后面的语句后,流程控制转移到下一 个继续执行。个继续执行。“常量表达式常量表达式”只是起语句只是起语句 标号作用,并不是在该处进行条件判断。在执行标号作用,并不是在该处进行条件判断。在执行 语句时,根据后面表达式的值语句时,根据后面表达式的值 找到匹配的入口标号,就从此标号开始执行下去,不再进找到匹配的入口标号,就从此标号开始执行下去,不再进 行判断。行判断。应该在执行一个分支后应该在执行一个分支后, ,可以用一个可以用一个 语句来终止语句来终止switchswitch语句的执行。语句的执行。 (6) (6) 多个可以共用一组执行语句。多个可以共用一组执行语句。 case A:case A:case B:case B:case case C:printfC:printf(“60n”);break;(“60n”);break;20/45第四章 选择结构程序设计鸡兔同笼问题鸡兔同笼问题 ?
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号