选择(分支)结构
计算机二级JAVA-110
计算机二级JAVA-110(总分:80.80,做题时间:90分钟)一、选择题(总题数:49,分数:80.80)1.结构化程序所要求的基本结构不包括______。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:[解析] 结构化程序的基本结构有3种,即顺序结构、选择结构(又称分支结构)、循环结构。
1)顺序结构。
顺序结构是程序设计中最基本的结构。
在该结构中,程序的执行是按命令出现的先后顺序依次执行的。
2)分支结构。
分支结构是按给定的选择条件成立与否来确定程序的走向。
分支可分为单向选择分支、双向选择分支和多路分支。
在任何条件下,无论分支多少,只能选择其一。
3)循环结构。
循环结构是一种重复结构,程序的执行发生了自下而上的往复,某一程序段将重复执行。
按循环的嵌套层次,循环可分为单循环结构和多循环结构。
按循环体执行的条件性质,循环又可分为计数循环和条件循环。
无论何种类型的循环结构,都要确保循环的重复执行能够终止。
2.对于下面语句的说法,不正确的是______。
Thread thrObj=new Thread();(分数:1.80)A.系统没有为该线程对象分配资源B.只能启动或者终止C.创建了一个空的线程对象D.可以调用其他方法√解析:[解析] 本题考查线程的创建。
通过new命令创建一个线程对象后,该线程对象就处于创建状态,上面的语句只是创建了一个空的线程对象,选项C说法正确。
此时,系统并没有为该线程对象分配资源,选项A说法正确。
处于这种状态的线程,只能启动或者终止,选项B说法正确。
该线程此时并不能调用其他方法,如果调用其他方法就会失败并引起非法状态处理,选项D说法错误。
3.下面对软件特点描述不正确的是______。
(分数:1.00)A.软件是一种逻辑实体,具有抽象性B.软件开发、运行对计算机系统具有依赖性C.软件开发涉及软件知识产权、法律及心理等社会因素D.软件运行存在磨损和老化问题√解析:[解析] 软件与硬件不同,它在运行、使用期间不存在磨损、老化问题。
程序流程有三种最基本的控制结构,即顺序结构、选择结构和讲解
布尔表达式练习
?-3<-2<-1 False a=3:b=4:c=5 ?a=b=c False 表示一个数x是能被3整除的奇数 x Mod 3=0 and x Mod 2< >0 x Mod 2=1 and x Mod 2< >0 表示一个数x∈[2,5] x>=2 and x<=5 表示一个数x不在[2,5]区间内 x<2 or x>5
(y Mod 4=0 AND y Mod 100<>0 ) OR 400=0 AND y Mod 100=0 )
(y Mod
(y Mod 4=0 AND y Mod 100<>0 ) OR y Mod 400=0
地球公转一周的时间为:365天5小时48分56秒
判断闰年的科学依据
每经过4年,剩余的时间为:5小时48分56秒×4=23小时15分44秒 则每4年都要多加24小时- 23小时15分44秒=44分16秒
每经过100年,就会多加44分16秒×25=18小时26分40秒
比较接近一天,所以每到100年,就将这多加的近似一天的时间减去, 即停止追加一天 而实际上又少加了24小时- 18小时26分40秒=5小时33分20秒 每经过400年,就会少加4 × 5小时33分20秒≈24小时 所以每过400年,就应该再补加一天 故:每4年闰年出现一次;每400年,闰年再出现一次 其它的整100年,闰年停止出现一次
每400年闰年再出现一次其它的整100年闰年停止出现一次12选择控制结构选择控制结构又称分支结构它体现了程序运行过程中的自我判断能力程序可以根据当前执行的某个条件进行比较判断并依据判断的结果成立与否来决定下一步做什么不做什么在两条或多条程序路径中选择一条来执行即只执行程序中的一部分语句可见在此结构的程序运行过程中有些语句会执行一次有些语句在此次程序运行过程中没有机会执行
五、分支结构(选择结构)
【教学目标与知识点】1)掌握和理解选择结构的几种形式2)学会使用选择结构解决问题【教学重点】选择结构的几种形式【教学难点】Selece Case语句形式和选择结构的嵌套使用【教学过程】复习顺序结构:交换两个变量中的数据【流程图】【程序代码】Dim a As Single, b As Single, c As Singlea=Val(Inputbox("请输入a", " 输入框"))b=Val(Inputbox("请输入b", " 输入框"))Print "交换前:a=";a; "b=";bc=aa=bb=cPrint "交换后:a=";a; "b=";b引入新课:比较上面程序和下面程序的执行结果,比较程序的不同之处。
【程序二】Dim a As Single, b As Single, c As Singlea=Val(Inputbox("请输入a", " 输入框"))b=Val(Inputbox("请输入b", " 输入框"))Print "交换前:a=";a; "b=";bIf a>b Thenc=aa=bb=cEnd ifPrint "交换后:a=";a; "b=";b【分析】不同之处:【程序二】中多了以下语句If a>b Then……End If,这就是本节可我们要学习的选择机构。
1、选择结构格式【形式一】单分支选择结构If 条件Then语句或语句组'语句组是指有多条语句的情况End if说明:如果条件为真就执行语句或语句组中语句,否则继续执行这段程序后面的语句。
程序的三种基本控制结构
程序的三种基本控制结构顺序结构选择结构循环结构一、顺序结构:顺序语句由语句序列组成,程序执行时,按照语句的顺序,从上而下,一条一条地顺序执行如:store 'Visual FoxPro' to nameAge = 4'My name is ' + name + ', I am ' ;+ str(Age) + ' years old'二、选择结构:分支语句根据一定的条件决定执行哪一部分的语句序列。
1、单分支结构格式:if<条件><语句序列>endif例程1:clearuse sbwait ‘是否打印?(y/n)’to aif upper(a)=’Y’wait ‘请接好打印机!按任意键后打印’list to printendif2、双分支选择格式:if<条件><语句序列1>else<语句序列2>endif例程2:clearset talk offaccept ‘请输入密码:’ to mmif mm<>’abc’’你无权使用本系统’quitelse’欢迎使用本系统’endifset talk onif语句的嵌套:在一个if语句中包含另一个语句的程序结构例程3:根据输入的x值,计算下面分段函数的值,并显示结果。
2x-5 (x<1)Y=2x (1<=x<10)2x+5 (x>=10)input ‘请输入x的值:’to xif x<1y=2*x-5elseif x<10y=2*xelsey=2*x+5endifendif?’分段函数的值为’+str(y)3、多分支结构格式:DO CASECASE 〈逻辑表达式1〉〈语句组1〉CASE 〈逻辑表达式2〉〈语句组2〉…CASE 〈逻辑表达式n〉〈语句组n〉[OTHERWISE]〈语句组〉ENDCASE3 / 35例程4:输入某学生成绩,并判断其成绩等级:100-90分为优秀,89-80分为良好,79-70分为中等,69-60分为差,60分以下为不及格。
高中信息技术必修课件程序的选择结构
其他算法中的选择结构
分治算法
将问题分解成若干个子问题,选择结 构用于判断子问题的类型和规模。
回溯算法
通过探索所有可能的解来求解问题, 选择结构用于判断是否满足约束条件 和剪枝策略。
动态规划
将问题分解为更小的子问题,并将子 问题的解保存起来以便后续使用,选 择结构用于判断子问题的状态和转移 方式。
06
首先计算表达式的值,然后与每个case的值进行比较,如果匹配则执行相应的语句块,直 到遇到break或switch语句结束。
switch语句的注意事项
case后的值必须是常量或字面量,且类型必须与表达式类型兼容;如果没有任何case与 表达式值匹配,则执行default后的语句块。
条件运算符
条件运算符的基本语法
判断。
switch语句
switch语句的基本语法
switch (expression) { case value1: statements1; break; case value2: statements2; break; ... default: statements; }
switch语句的执行流程
充分测试
在编写完选择结构后,要进行充分的测试,包括正常情况和异常 情况,确保程序的正确性和稳定性。
THANK YOU
感谢聆听
嵌套选择结构的实现方法
if语句的嵌套
在if语句内部使用另一个if语句,根据条件判断执行相应的代码块 。
switch语句的嵌套
在switch语句内部使用另一个switch语句,根据不同的条件执行相 应的代码块。
if-else语句的嵌套
在if或else语句内部使用另一个if-else语句,实现更复杂的条件判 断和分支控制。
结构化程序设计的三种基本结构
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
第4章 C语言程序的基本控制结构
#include<stdio.h> main() { int c1,c2; scanf("%c",&c); c1=c-1;c2=c+1; printf("%c%4c%4c\n",c1,c,c2); printf("%d%4d%4d\n",c1,c,c2); }
4.2 顺序结构
运行结果:
4.3选择结构
入口
入口
A 语句1 B
真
表达 式
假
条件 语句2 循环体
出口
图4.1 顺序结构
出口 出口
图4.2 选择(分支)结构 图4.3 循环结构
上述三种基本控制结构的共同特定是具有单入口和单出口。 还有一种goto语句,又叫转向语句,在本章的4.4.5小节中将会讲解到。 我们在编写程序时,力求使用前三种基本结构语句。
4.3选择结构
例4.3 幼儿园里三个小朋友站队要求小个站在前面,高个站在后面。 分析:我们可以把个子最小的小朋友放在a位置上,较高的小朋友放在b位 置上,个子最高的小朋友放在c位置上。输入三个数,a,b,c,要求按由小到 大的顺序输出。先比较a和b,若a大于b,则a与b对换,再比较a和c,若a 大于c,则a与c对换,这时a的值是最小的,最后比较b和c,若b大于c,则b 与c对换。这样操作之后就使a<b<c的关系成立。然后顺序输出a,b,c既可。
! 逻辑非,单目运算符,自右至左结合。其运算规则是:当 运算量为0,运算结果为1;反之,当运算量为1,运算结果为0。 && 逻辑与,双目运算符,自左至右结合。其运算规则是: 只有当运算符两边的运算量都是非0时,运算结果才为1,否则为0。 || 逻辑或,双目运算符,自左至右结合。其运算规则是:只 要运算符两边的运算量有一个为为非0,运算结果就为1。只有两 个运算量都为0,结果才是0。 这三个运算符的优先级,逻辑非!最高,逻辑与&&次之,逻 辑或||最低。!(逻辑非)的优先级高于算术运算符和关系运算符, 而&&(逻辑与)和||(逻辑或)的优先级低于算术运算符和关系运算符。 由 此可见: a>b&&c>d 相当于 (a>b)&&(c>d) a= =0||b= =0 相当于 (a= =0)||(b= =0) !a&&b= =c 相当于 (!a)&&(b= =c)
高中数学 第章 算法初步 .2 流程图 .2.2 选择结构教案 必修3
1.2.2选择结构整体设计教材分析在一个算法中经常会遇到对一个条件进行判断,如果条件成立则执行某个操作,如果条件不成立则执行另一个操作.因此在算法的流程图中,根据条件是否成立有着不同的流向.像这种根据条件作出判断,再决定执行哪一种操作的结构称为选择结构(selection structure)(或称“分支结构")。
一个选择结构都包含一个判断框,当条件成立时执行标有“Y”或者“是”的分支,当条件不成立时执行标有“N”或者“否”的分支。
图1的虚线框内就是常见的几种选择结构,在(1)中,当条件“n>3”成立时执行A,否则执行B;在(2)中,当条件“n>3”成立时执行A,否则直接脱离选择结构;在(3)中,当条件“n〉3"成立时直接脱离选择结构,否则执行B。
图1对于选择结构要注意以下几点:(1)在选择结构中不论条件是否成立,只能执行A框或者B框之一,不能既执行A框,又执行B框,即“Y"和“N”两者之中只能选择一个,不能两者都选择;(2)在选择结构中不论条件是否成立,必须执行A框或者B框之一,不能既不执行A框,又不执行B框,即“Y”和“N”两者之中必须选择一个,不能两者都不选择;(3)A框和B框中可以有一个是空的,即可以不执行任何操作直接脱离选择结构,但是不能两个框都是空的;(4)无论走哪条路径,执行完A或者B之后都经过P,然后才脱离选择结构;(5)选择结构可以是嵌套的,即在选择结构之中还可以出现选择结构,这种结构主要是出现在有多个条件判断的算法中;(6)选择结构可以和其他结构嵌套,形成比较复杂的结构;(7)A框或者B框可以不止一个操作,A框本身就可以是一个独立的算法结构.三维目标1。
通过实例的训练,使学生理解选择结构的意义。
2.能用流程图表示选择结构以及能用选择结构的流程图表示简单问题的算法,养成良好的逻辑思维习惯,发展有条理的思考与表达能力,达到提升学生逻辑思维能力的目标.重点难点教学重点:用选择结构的流程图表示算法。
教学内容if语句switch语句选择结构程序举例
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf(“grade=E\n”); break;
default: printf(“The score is out of range!\n”);}
}
程序运行情况如下:
Input a score(0~100): 85↙
例 6.5 输入 + * - / , 输出对应的单词。 #include<stdio.h> main() { char ch ; ch=getchar(); if (ch=='+') printf("plus\n"); else if (ch=='-') printf("minus\n"); else if(ch=='*') printf("multiply\n"); else if (ch=='/') printf("divide\n"); else printf("error\n"); }
printf("input two numbers: "); scanf("%d%d",&a,&b); if(a>b) printf("max=%d\n",a); else printf("max=%d\n",b); }
例6.3从键盘输入两个数,按升序输出两个数 #include <stdio.h> main() {
教学内容if语句switch语句选择结构程序举例
在C语言中,当需要根据选择条件来确定所要做 (执行)哪一项数据处理的情况,这样的程序结构,被 称为选择(分支)结构。
分支选择结构
分支选择结构是编程中的一种基本控制结构,用于根据不同的条件执行不同的代码块。
它主要分为两种类型:单分支选择结构和多分支选择结构。
1. 单分支选择结构:也称为if-else语句,其基本语法形式如下:
```
if 条件表达式:
语句/语句块
else:
语句/语句块
```
在这个结构中,程序会首先判断条件表达式的值,如果为真,则执行第一个分支的代码块;否则,执行第二个分支的代码块。
2. 多分支选择结构:也称为if-elif-else语句,其基本语法形式如下:
```
if 条件表达式1:
语句1/语句块1
elif 条件表达式2:
语句2/语句块2
...
elif 条件表达式n:
语句n/语句块n
else:
语句n+1/语句块n+1
```
在这个结构中,程序会依次判断每个条件表达式的值,如果某个条件表达式为真,则执行相应的代码块;如果所有条件表达式都不为真,则执行最后一个else分支的代码块。
第04章 分支结构
第 4 章
分支结构
该程序执行的过程是: 判断商品数量,
数量大于等于50,执行语句A;
数量小于50,执行语句B。 你能画出这个程序的流程图吗?
第 4 章
【注意】
分支结构
(1)if后面的<表达式>一定要有括号。
(2)if和else同属于一个if语句,程序中不可以没有if而
只有else。 (3)if子句与else子句不可能同时执行。 (4) if语句中的各子句必须用分号结束,若子句是由多 个语句组成,必须写成复合语句(用{ }括住),“}”
分支结构
( x 0) ( x 0) ( x 0)
/*不嵌套的if 语句*/ if (x<0) y= -1; if (x= =0) y=0; if (x>0) y=1;
第 4 章
注:
分支结构
1) 复合语句本身是一个完整的语句,它不以 分号作为结束符。“}”后加了分号相当于多 了一个空语句。对这种情况,有时对程序 流程没有影响,但有时会改变程序流程。
2) 复合语句内通常有多个语句,但它整体上 是作为一个语句看待。
3) 在程序中凡是可以出现语句的地方都可以 使用复合语句。它通常出现在控制语句 (选择、循环)中作为子句或循环体。
后不能再加“;”
(5)if语句的表达式可以是任意类型的C语言的合法表 达式,其值为表示“假”,其值为非0时表示
第 4 章
例1:
分支结构
if (a>b) printf(“%d\n”,a); printf(“%d\n”,b); 不同于 if (a>b) {printf(“%d\n”,a); printf(“%d\n”,b);}
第 4 章
运行结果:
3.1.2选择结构的几种形式
3.1.2选择结构的⼏种形式 选择结构通过判断某些特定条件是否满⾜来决定下⼀步的执⾏流程,是⾮常重要的控制结构。
常见的有单分⽀选择结构、双分⽀选择结构、多分⽀选择结构以及嵌套的分⽀结构,形式⽐较灵活多变,具体使⽤哪⼀种最终还是取决于要实现的业务逻辑。
循环结构和异常处理结构中也可以带有else⼦句,也可以看作是特殊形式的选择结构。
1 单分⽀选择结构 单分⽀选择结构是最简单的⼀种形式,其语法如下所⽰,其中表达式后⾯的冒号“:”是不可缺少的,表⽰⼀个语句块的开始,后⾯⼏种其他形式的选择结构和循环结构中的冒号也是必须要有的。
if 表达式: 语句块 当表达式值为True或其他等价值时,表⽰条件满⾜,语句块将被执⾏,否则该语句块将不被执⾏,继续执⾏后⾯的代码(如果有)。
1 >>> x = input('Input two numbers:')2 Input two numbers:3 43 >>>4 >>> a,b = map(int,x.split())5 >>>6 >>> a7 38 >>> b9 410 >>>11 >>> if b > a:12 a,b = b,a #序列解包,交换两个变量的值131415 >>> print(a,b)16 4 317 >>> 注意:在Python中,代码的缩进⾮常重要,缩进是体现代码逻辑关系的重要⽅式,同⼀个代码块必须保证相同的缩进量。
养成习惯,严格遵循这个要求吧。
2 双分⽀选择结构 双分⽀选择结构的语法为: if 表达式: 语句块 1 else: 语句块 2 当表达式值为True或其他等价值时,执⾏语句块 1 ,否则执⾏语句块 2。
代码⽰例如下:1 l = [ '1','2','3','4','5' ]23if l:4print(l)5else:6print('Empty')789# 执⾏结果:['1', '2', '3', '4', '5'] 拓展知识:Python还提供了⼀个三元运算符,可以实现与选择结构相似的效果。
选择结构单分支结构(教学设计)
2.3.2程序的选择结构——教学设计一、教材分析本节课的教学内容是教育科学出社版、普通高中课程标准实验教材选修模块《算法与程序设计》中的第2章第3节《程序的选择结构》,是在上两课时(2.1—2.2)学习VB的基本数据类型、常量、变量、函数、表达式等程序设计语言和程序顺序结构的基础上,学习程序的选择结构,其中包含“选择结构的格式、功能、执行过程”。
在解决实际问题的过程中,常常需要对事物进行判断和选择。
如何在程序设计中能够实现判断和选择,选择结构是重要的选择方式之一。
在讲解这一知识点时,采用英语“If you feel happy then you will smile else you will sad.”提炼选择结构并编写程序,引导学生经历分析问题、设计算法、编写程序、调试程序等用计算机解决问题的全过程。
通过分析程序,归纳总结出VB语言的选择结构的格式、功能、执行过程,让学生体验自主学习、协助学习的乐趣,体验成功的快乐。
二、学情分析在第一章的学习中,学生已经经历了利用计算机解决问题的基本过程,领略了用计算机解题的奇妙之道,在第二章中学习VB的基本数据类型、常量、变量、函数、表达式等程序设计语言和程序顺序结构的基础上,感悟了程序设计是其中的关键环节,对程序设计已经产生了一定兴趣。
三、教学目标:1、通过英语“If you feel happy then you will smile.”提炼选出择结构的单分支结构,通过英语“If you feel happy then you will smile else you will sad.”提炼出选择结构的双分支结构,讲解单分支结构和双分支结构及其功能和执行过程。
师生共同分析“密码登陆框”问题,分别用单分支和双分支结构解决密码输入正确和不正确时的处理方法。
归纳总结VB语言的选择结构的格式、功能、执行过程,掌握条件选择语句的使用方法,能够编写简单的选择结构的程序;掌握VB语言的关系表达式、逻辑表达式等程序设计语言的基本知识。
VFP多分支选择结构
输入cj值
编写程序DISPCJ.PRG,键盘输入一 个成绩,根据成绩显示等级。 其中:成绩≥90为“优秀”, 80≤成绩<90为“良好”, 60 ≤ 成绩<80为“合格”, 成绩<60为“不合格”。
Cj>=90 否 Cj>=80
是
?“优秀”
是
?“良好”
否
Cj>=60 否 otherwise 是 ?“不合格” 是 ?“合格”
流程结构图
DOCASE前面语句 是
条件1 否 条件2 否 条件n
语句组1
是
语句组2
是
语句组n
否
otherwise
语句组
ENDCASE后面语句
语法格式: DO CASE CASE <条件1> <语句组1> CASE <条件2> <语句组2> …… CASE <条件n> <语句组n> [OTHERWISE <语句组>] ENDCASE
输入x值 X<0 否 X<3 否 X<5 否 X<10 否 other wise 是 是 是 是 Y=2*x-1
Y=3*x+5
Y=x+1
Y=5*x-3
Y=7*x+2
endcase
clear input "x=" to x do case case x<0 y=2*x-1 case x<3 y=3*x+5 case x<5 y=x+1 case x<10 y=5*x-3 otherwise y=7*x+2 endcase ?"f(x)=",y return
第四章 选择(分支)结构程序设计
用一个逻辑表达式来表示一个复杂的条件。
例如:判断某一年是否闰年。 闰年:能被4整除,但不能被100整除;或能被 400整除。
(year%4==0&&year%100!=0)||year%400==0
表达式为“真”,闰年条件成立,是闰年,否则 非 闰年。
复合语句的形式:
{ 语句1; 语句2; 语句3; ……
}
4.3 if语句
4.3.1 if语句三种形式
复合语句在选择结构,循环结构中经常用到。 我们在逻辑上把复合语句看成是一条语句。
4.3 if语句
4.3.1 if语句三种形式
例:要求用户输入一个实数,然后求出这个实数 的绝对值。
4.3 if语句
逻辑运算的真值表:
a b a&&b
a||b
真真 真
真
真假 假
真
假真 假
真
假假 假
假
a
!a
真
假
假
真
4.2 逻辑运算符和逻辑表达式
4.2.1 逻辑运算符及其优先顺序
例:逻辑运算举例 a&&b 若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假,反之若a为假,
4.3.1 if语句三种形式
▪ 在C语言中,表达式P的值是非0时,系统均按真 值处理。
例(1) if (‘a’) printf(“ok!”); (2) x=-5; if(x) printf(“ok!”); (3) y=0; if(y==0) printf(“ok!”); if(y) printf(“ok!”);
第4章 C语言选择结构程序设计
《 C语言程序设计》
流程图
真 (非0) 表达式
假(0)
语句1
语句2
《 C语言程序设计》
例4.1
【例4.1】试用if…else语句编写程序,判断学生成绩 是否合格。
判断方法: ①如果成绩大于等于60,输出及格 ②否则输出成绩不及格
《 C语言程序设计》
4.2 if语句 if语句
C语言中if条件语句有三种结构形式,分别是: if结构(单分支结构) if if-else if-else结构(双分支结构) if-else-if结构 (多分支结构) if-else-if
《 C语言程序设计》
例4.5 设计一个应用程序,判断某一年是否为闰年
判断方法: ①如果该年能被4整除而不能被100整除,则为闰年; ②或者能被400整除也是闰年。 如: 1996年、2000年是闰年 1996年 2000年是闰年
1998年 1900年不是闰年 1998年、1900年不是闰年
逻辑表达式为: year%4==0 && year%100!=0 || year%400==0
4.4 条件运算符和条件表达式
条件运算符: 1、条件运算符:?:是C语言中惟一的一个三 目运算符。 一般形式为: 2、一般形式为: 表达式1 ? 表达式2 : 表达式3 3、操作过程:如果表达式1成立,则表达式2的 操作过程: 值就是此条件表达式的值;否则,表达式3 的值是此条件表达式的值。
《 C语言程序设计》
《 C语言程序设计》
4.2.2 if-else结构 if-else结构
1、格式: if(条件表达式 语句1 条件表达式) if(条件表达式) 语句1; 真 (非0) else 语句2; 语句 ; 语句1 2、执行过程:
Python程序设计之多分支选择结构介绍课件
if语句
单分支if语句
语法结构:if 条件表达式:
01
0 2 功能:当条件表达式为True时, 执行缩进的语句块 示例:if x > 0: print(x)
03
04 注意事项:条件表达式的结果必 须是布尔值,否则会抛出异常
双分支if-else语句
● 语法结构:if 条件表达式: 语句1 else: 语句2 ● 功能:根据条件表达式的值,决定执行语句1还是语句2 ● 应用场景:需要根据条件进行分支选择的场景 ● 示例代码: ● ```python ● x = 10 ● if x > 5: ● print("x大于5") ● else: ● print("x不大于5")
避免不必要的分支
合并条件:将多个 条件合并为一个条 件,减少分支数量
01
提前返回:在满足 特定条件时,提前 返回结果,避免后 续分支的执行
02
04
优化算法:采用更 高效的算法,减少 分支的执行次数
03
利用函数:将重复 的分支逻辑封装成 函数,提高代码可 读性和可维护性
谢谢
02
if-else语句:用于双分支选
择结构,根据条件执行其中
03
if-elif-else语句:用于多分
一个代码块
支选择结构,根据条件执行
其中一个代码块
04
switch-case语句:用于多
05
嵌套if语句:用于在if语句
中嵌套其他if语句,实现更
分支选择结构,根据表达式 的值执行对应的代码块
复杂的选择结构
3
if语句:最基本的条件语句,用于判断一个条件是否满足
4
elif语句:在if语句不满足时,用于判断其他条件是否满足
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例
下面程序的运行结果是什么? main() { int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z+=1; printf("%d\n",z); }
2
2014-3-10
Hongyan Nan,HPU
11
if语句的三种形式 0 非0 expr2 形式三: 0 非 0 if(exp1) expr3 statement1 非0 else if(exp2) 例 if(exp1) statement1 statement2 statement3 statementn statement2 if(exp2) 改例 if(exp1) ……statement1 例:if(salary>1000) { index=0.4; [else statementn] else if(exp2) else if(salary>800) statement1 执行过程: statement2 index=0.3; } else if(salary>600) 注意:else与if的配对原则:else总是与它上面的最近 else index=0.2; 的未配对的if配对 statement2 else if(salary>400) index=0.1; 实现if与else正确配对方法:加{ }
2014-3-10
Hongyan Nan,HPU
9
开始
例4.4 输入a、b、c,从小到大顺序输出 #include <stdio.h> main() { float a,b,c,t; scanf("%f%f%f",&a,&b,&c); if(a>b) { t=a; a=b; b=t;} /*对换a和b的值*/ if(a>c) 运行: { t=a; a=c; c=t;} 5.34.66.5↙ if(b>c) 4.60,5.30,6.50 { t=b; b=c; c=t;} printf("%5.2f,%5.2f,%5.2f\n",a,b,c); }
运行: Input integer a:12 Input integer b:12 a==b 再运行: Input integer a:12 Input integer b:9 a!=b
2014-3-10 Hongyan Nan,HPU 6
例4.2
#include <stdio.h> main() 运行结果: { 0,0 char c='k'; 1,0 0,1 int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",!x*!y,!!!x); printf("%d,%d\n",x||(i=5)&&j-3,i<j&&x<y); printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k); }
4.1 关系运算符和关系表达式
关系运算符 种类:<、<=、==、>=、>、!=,双目运算,左结合性 优先级:<、<=、>=、>高于==、!= 运算结果:逻辑值1或0 例 a>b!=c 例 5>3 1 (a>b)!=c 关系运算的值可以参与其他运算 5<=3 0 a==b<c a==(b<c) 注意:用==或!=比较两个浮点数时会出错 '5'==5 0 a=b>c a=(b>c) intb=0.5; i=1, j=7,a; 例 又例 若a=0; x=0.3; 关系表达式 exp1关系运算符exp2 例 int a=3,b=2,c=1,d,f; 10 a=i+(j%4!=0); 则a<=x<=b 值为 0 5!=3 例 C语言中: 1.0/3.0*3.0==1.0 结果为 关系表达式的值:逻辑值1或0 表达式值1 a>b 则 a= 2 例 -i-5*j==k+1 (-i-5*j)==(k+1)表述正确 数学上:1.0/3.0*3.0==1.0 关系表达式的值也可以参与其他运算(a>b)==c 表达式值1 'a'+1<c+b ('a'+1)<(c+b) 可写为:fabs(1.0/3.0*3.0-1.0)<1e-6 表达式值0 b+c<a x=a!=c==d x=((a!=c)==d) d=1 d=a>b f=0 f=a>b>c
2014-3-10 Hongyan Nan,HPU
输入a b c a>b 非0 a b对换 a>c 非0 a c对换 b>c 非0 b c对换 输出a b c 结束
10
0
0
0
例
下面程序的作用是什么? main() { char c; printf("Input :"); scanf("%c",&c); if(c>='a'&&c<='z') c=c-32; else c=c; printf("%c",c); } 将小写字母转换为大写字母
2014-3-10 Hongyan Nan,HPU
expr1
0
else index=0;
12
例4.5 编写程序判别键盘输入字符的类别 #include <stdio.h> main() ASCII码表中,<32的为控制字符, { 48~57间为0~9,65~90间为A~Z, char c; 97~122间为a~z,其余为其他字符 printf("input a character:"); 用多分支选择判断 c=getchar(); if(c<32) printf("This is a control character\n"); 运行: else if(c>=48&&c<=57) input a character:g↙ printf("This is a digit\n"); This is a small letter else if(c>=65&&c<=90) printf("This is a capital letter\n"); else if(c>=97&&c<=122) printf("This is a small letter\n"); else printf("This is an other character\n"); }
序
一:用关系表达式 或逻辑表达式;二:用 if语句或switch语句
在C语言中设计选择 结构程序,必须解决的两 个问题:一是如何表示条 件;二是用什么语句实现 选择结构
C语言中用1表示逻辑“真”,用0表示逻辑“假” 所有非零值按真处理,否则按假处理
2014-3-10 Hongyan Nan,HPU 3
2014-3-10
H成的选择结构
0 if 语句的三种形式 例 4.3 输入一个数,如果为正数,求其平方根并输出, exp 则:例否则,输出该数。 4.3 程序可改为 形式一: if(exp) 非0 #include <stdio.h> #include <stdio.h> statement statement #include <math.h> #include <math.h> 执行过程: main() main() 注意: { float x,y; exp可为表达式、常量或变量,且须加() { 例 if(x>y) printf("input one float x,y; 形式二: if(exp) number:"); 例 %d",x); if(5) printf(" 0 非0 scanf(" % f",&x); printf("input one number:"); exp statement1 printf("%d",1); if (x>0)%f",&x); scanf(" else y=sqrt(x); 又例statement1 if(b) statement2 y=x; statement2 else if(x>0) printf("%d",!b); y=x; y=sqrt(x); 执行过程: 例 运行: if(x>y) input one number:4↙ printf("y= % f",y); max=x; printf("y= % f",y); 注意:statement1、2可为简单或复合语句
2014-3-10 Hongyan Nan,HPU 4
例4.1
#include <stdio.h> main() 运行结果: { 1,0 char c='k'; 1,1 0,0 int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1); printf("%d,%d\n",1<j<5,x-5.25<=x+y); printf("%d,%d\n",i+j+k==-2*j,k==j==i+5); }