第4章程序控制结构及分支结构
Python程序设计 实验报告 第4章 程序控制结构的应用
实验4程序控制结构的应用[实验目的]•了解程序的基本结构;•掌握分支结构的类型和使用方法;•掌握循环结构的类型和使用方法;•理解程序设计的流程控制语句;•掌握循环语句的结构特点;•具备使用循环结构并能够完成简单编程的能力。
要求:所有操作结果均以截图的形式保存,截取的图上尽可能的出现自己的个人信息。
[实验设备]PC机一台;Pycharm;Win7/11操作系统。
[实验任务]任务4-1判断奇偶数任务4-2鸡兔同笼的问题任务4-3输出美元符号($)阵列任务4-4继续嵌套循环任务4-5输出IOO以内的素数任务4-6求1-2+3-4+5...99的所有数的和[实验流程]任务4・1判断奇偶数【任务需求】编写一个程序,判断输入的整数,利用流程分支语句去判断是奇数还是偶数,按编程顺序进行编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-2鸡兔同笼的问题【任务需求】一个笼子中有鸡X只,兔y只,使用a和b定义鸡和兔子的头和脚,求鸡兔各有几只,运用关系式判断鸡的数量和兔子的数量如果f1ag=1则成立,如果f1ag=O则输出错误(使用for循环解决)。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-3输出美元符号($)阵列【任务需求】分别使用for循环和使用whi1e循环,运用range函数设置循环的次数,输出每次i+1后的$号,接着按要求进行程序编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
任务4-4继续嵌套循环【任务需求】某课程的百分之分数m,将其变换为5分制(优、良、中、及格、不及格)的评定等级grade,评定条件以下:优:m>=90>良:80<=m<90>中:70<=m<80>及格:60<=m<70.不及格:m<60,首先创建以对象名为“m”,接着按要求进行程序编写。
【任务完成效果图】请按照任务需求将完成的效果图放在下方。
C语言第4章-分支结构.
§【源程序】 §main( ) §{ int grade; printf ( "input the grade:"); § scanf ("%d",&grade); § if (grade>=90) printf("A\n"); § else if(grade>=80) printf("B\n"); § else if(grade>=70) printf("C\n"); § else if(grade>=60) printf("D\n"); § else printf("E\n"); §}
§2.添break、可跳出。见下节
【例呢?
§ //百分制成绩的等级划分问题之解法3(不完善):
§ main( )
§ {int grade; printf("input the grade:");
§ scanf("%d",&grade);
§ switch(grade/10) //按单值匹配,故要将范围映射为单值
§4.各个case子句出现的次序对执行结果没任 何影响,即顺序可以任意布局。
§5.每一个case能够拥有一条或多条语句,其最大的 不同之处在于使用多条语句时不需要用“{}”括起来。
§6.多个case可以共用一组执行语句。例如:
§
┆
§
case ‘A’:
§
case ‘a’: ++count ; break ;
§
Python程序的控制结构 ppt课件
二分支示例
ppt课件
if True: print("语句块1")
else : print("语句块2")
22
Python分支结构
二分支结构
紧凑形式:适用于简单表达式的二分支结构 <表达式1> if <条件> else <表达式2>
guess = eval(input()) print("猜{}了".format("对" if guess==99 else "错"))
17
Python分支结构
单分支结构
根据判断条件结果而选择不同向前路径的运行方式
if <条件> : <语句块>
ppt课件
18
Python分支结构
单分支结构
单分支示例
guess = eval(input()) if guess == 99:
print("猜对了")
if True: print("条件正确")
grade = 'D' elif score >= 70:
grade = 'C' elif score >= 80:
grade = 'B' elif score >= 90:
grade = 'A'
- 注意多条件之间的包含关系 - 注意变量取值范围的覆盖
print("输入成绩属于级别:{}".format(grade))
•流程图的基本元素包括7种
ppt课件
7
程序流程图
计算机应用基础第4章习题答案(江西省三校生)
计算机应用基础第4章习题答案(江西省三校生)第4章习题答案1. 数据类型与运算符1.1 数据类型计算机中常见的数据类型包括整型、浮点型、字符型、布尔型等。
整型用于表示整数,浮点型用于表示带有小数点的数值,字符型用于表示单个字符,布尔型用于表示真假值。
1.2 运算符运算符是计算机中用于进行数学运算和逻辑判断的符号。
常见的运算符有算术运算符、关系运算符、逻辑运算符等。
算术运算符用于进行基本的加减乘除运算,关系运算符用于比较两个值的大小关系,逻辑运算符用于进行逻辑判断。
2. 控制结构2.1 顺序结构顺序结构是指程序按照顺序执行的结构,即按照代码的先后顺序依次执行每一条语句。
2.2 分支结构分支结构是指根据条件的不同选择不同的执行路径。
常见的分支结构有单向分支结构和双向分支结构。
单向分支结构使用if语句进行条件判断,如果条件满足则执行相应的代码块;双向分支结构使用if-else 语句进行条件判断,如果条件满足则执行if代码块,否则执行else代码块。
2.3 循环结构循环结构是指根据条件的不同重复执行某一段代码。
常见的循环结构有while循环和for循环。
while循环会在循环开始前判断条件是否满足,如果满足则执行循环体中的代码,并且在循环结束后再次判断条件;for循环会在循环开始前初始化计数器,然后在每次循环结束后更新计数器的值,直到计数器达到指定的条件才退出循环。
3. 函数与模块3.1 函数函数是指一段封装了特定功能的代码块,可以通过函数名调用并传入参数来执行函数内的代码。
函数的作用是将一段代码封装成一个独立的单位,提高代码的可读性和复用性。
3.2 模块模块是指将一些相关的函数、类或变量封装到一个文件中,供其他程序使用的文件。
模块可以通过import语句引入,并使用模块名加函数名或变量名的方式调用。
4. 文件操作4.1 文件的打开和关闭在对文件进行操作之前,需要先打开文件,使用open()函数可以打开一个文件,并返回一个文件对象。
第四章 结构化程序设计的三种结构
第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。
格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。
(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。
转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。
格式字符串中的普通字符,原样输出。
例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。
2.输出项表输出项表是可选的。
如果要输出的数据不止1个,相邻2个之间用逗号分开。
下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
c语言运输公司按照以下方法计算运费,c语言程序设计第4章_分支结构.ppt
c语⾔运输公司按照以下⽅法计算运费,c语⾔程序设计第4章_分⽀结构.ppt《c语⾔程序设计 第4章_分⽀结构.ppt》由会员分享,可在线阅读,更多相关《c语⾔程序设计 第4章_分⽀结构.ppt(36页珍藏版)》请在⼈⼈⽂库⽹上搜索。
1、C语⾔程序设计教程(第2版),第4章 分⽀结构,第4章 分⽀结构,本章主要内容 1. if语句的基本结构 2.ifelse语句基本结构 3. if语句的嵌套结构 4. switch语句的基本结构 5.程序案例分析,第4章 分⽀结构,顺序结构:程序按照语句的先后顺序进⾏数据处理。
分⽀结构:程序要对问题进⾏判断,根据判断的结果,选择不同的处理⽅式,进⾏不同的操作。
C语⾔⽤于实现分⽀的结构: if结构 switch结构 4.1.1 if语句if语句结构是⼀种常⽤的分⽀结构,是最简单的⼀种单分⽀结构,该结构构成⼀个⼆叉结构。
,if语句的⼀般形式为。
if() 语法功能: 先判断的值,若该值为“真。
2、”, 则:执⾏; 否则:什么也不执⾏。
注意: 1. :⼀般为条件表达式或逻辑表达式。
2. if语句中的⼀般情况下都是以复合语句的形式出现,即⽤⼀对花括号将语句括起来。
如果语句只有⼀条,则可以不需要花括号 3. if结构的流程图 :,4.1 if结构,4.1 if结构,例1:从键盘任意输⼊两个实数a和b,要求a的值总是⼩于或等于b的值,然后输出这两个数a和b的值。
分析:根据题意,要求ab。
⽅案:先输⼊⼀个较⼩的数,赋给变量a,再输⼊⼀个较⼤的数,赋给变量b。
问题:输⼊的限制对⽤户不合理。
如果先输⼊的值较⼤,后输⼊的值较⼩,则结果为ab。
⽅案修正:不论输⼊的⼤⼩顺序怎样,总是会有ab的。
3、结果。
,4.1 if结构,算法的流程图如图所⽰: 其中虚线框为if结构。
程序的难点:交换a,b的值。
程序见:example4_1.c 例2:从键盘输⼊⼀个整数,求该数的绝对值。
第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)
Python第2版第4章答案
第4章程序的控制结构4.1 程序的基本结构[4.1]: 正确。
[4.2]: 错误。
[4.3]: A[4.4]: B4.2 程序的分支结构[4.5]: 错误。
[4.7]: 错误。
[4.8]: B[4.9]: 输出Grade为D,不符合逻辑。
因为输入满足多分支第一个条件,执行后跳出了整个多分支。
应该将成绩从高到低作为判断条件。
4.3 实例5:身体质量指数BMI[4.10]: 因为没必要,上一个条件的上限恰好是下一个条件的下限,各个区间是相连的。
不存在冲突。
[4.11]: 正确。
这个语句的运算顺序是24<=(28<25), 其中28<25的运算结果为False,然后计算24<=False,相当于计算24<=0,输出False。
[4.12]: 语句换行,表示下一行与上一行是同一行语句。
4.4 程序的循环结构[4.13]: 正确。
[4.14]: 错误。
[4.15]: 错误,死循环在维持系统运行方面有很重要的作用。
[4.16]: D[4.17]: B4.5 模块2:random库的使用[4.18]:(1) for i in range(10):print(randint(0,100) )(2) randrange(1,100,2)(3) s ='abcdefghij'for i in range(4):print(s[randint(0,len(s)-1)])(4) print(['apple', 'pear', 'peach', 'orange'][randint(0, 3)])4.6 实例6:π的计算[4.19]: DARTS = 10000000时,准确率比较高,结果是3.1420104。
[4.20]: 将第11句改为dist <= 2.0,这样无论xy怎样变化,它们的平方和始终小于2,结果也是一样的,虽然是错的。
VF学习第4章(1)
4.1 程序文件
三、宏代换函数 格式: 格式: &<字符型内存变量> &<字符型内存变量 字符型内存变量> 功能: 功能: 把字符型内存变量的值替换出来。 把字符型内存变量的值替换出来。 说明: 说明: 1) 在符号“&”与字符型内存变量名之间不可有空格。 在符号“ 与字符型内存变量名之间不可有空格。 2) 宏代换函数能作为字符的一部分出现,此时应以“.” 宏代换函数能作为字符的一部分出现,此时应以“ 来标记该字符型内存变量名的结束, 来标记该字符型内存变量名的结束,避免与后续字符 混淆。 混淆。 a=”qr” 例: a=”qr” ? ”&a.st” &a.st” 输出结果: 输出结果:qrst
4.1 程序文件 五、格式化输入输出命令 格式: 格式: <行,列> [SAY<表达式1>] [GET<变量名>] [SAY<表达式 表达式1>] [GET<变量名 变量名>] [DEFAULT<表达式 [DEFAULT<表达式2>] 表达式2>] 功能: 功能: 在屏幕的指定位置上输出SAY子句中表达式的值以 在屏幕的指定位置上输出SAY子句中表达式的值以 GET子句中变量的值 子句中变量的值。 及GET子句中变量的值。 说明: 说明: 1) <行,列>指信息在窗口中出现的坐标位置。 <行 指信息在窗口中出现的坐标位置。 行自顶向下编号,列自左向右编号,窗口中第一行、 行自顶向下编号,列自左向右编号,窗口中第一行、 第一列的编号都为0 列都是数值表达式, 第一列的编号都为0。行、列都是数值表达式,都 可使用十进制小数精确定位。 可使用十进制小数精确定位。
4.1 程序文件 四、WAIT命令 WAIT命令 格式: 格式: WAIT [<提示信息>] [TO<内存变量>] [<提示信息 提示信息>] [TO<内存变量 内存变量>] [WINDOW ] [TIMEOUT<数值表达式>] [TIMEOUT<数值表达式 数值表达式>] 功能: 功能: 暂停程序的执行、显示提示信息等待用户按键。 暂停程序的执行、显示提示信息等待用户按键。 说明: 说明: 1) 用户可通过可选项[<提示信息>]指定提示内容, 用户可通过可选项[<提示信息 指定提示内容 提示信息>]指定提示内容, 否则将显示系统设定的提示信息: 否则将显示系统设定的提示信息:“按任意键继 续……” 2) 可选项[TO<内存变量>]用于指定一个内存变 可选项[TO<内存变量 用于指定一个内存变 内存变量>] 量来存放操作过程中用户所键入的首字符, 量来存放操作过程中用户所键入的首字符,并自动 定义该变量为字符型。 定义该变量为字符型。
06-第4章 程序控制结构与算法基础-2 苏州大学VB
第4章 章 程序控制结构与算法基础 (二)
苏州大学计算机学院 陈建明 jmchen@
1
主要内容
1. 分支结构与分支语句(2) 分支结构与分支语句( ) 2. 循环结构与循环语句(2) 循环结构与循环语句( ) 3. Print方法 方法
2
1 分支结构及分支语句 分支结构及分支语句(2)
4
1 分支结构及分支语句 分支结构及分支语句(2)
• 多分支结构 多分支结构(1)—用IF语句,并列使用、嵌套使用 用 语句 并列使用、 语句,
T e1 e2 T A1 A2 F F
e3 T A3
F
A4
并列结构: 并列结构: IF e1 and e2 THEN A1 ENDIF IF e1 and not e2 THEN A2 ENDIF IF not e1 and e2 THEN A3 ENDIF IF not e1 and not e2 THEN A4 ENDIF
• 循环的嵌套
– 循环体中又出现了循环语句,称为循环嵌套、多重循环 循环体中又出现了循环语句,称为循环嵌套 循环嵌套、 – 外面的循环称外循环,里面的称内循环 外面的循环称外循环, – 使用时,内外循环的循环控制变量名不能相同,且相互 使用时,内外循环的循环控制变量名不能相同, 独立
e1
条件e F T 循环体
第4章VisualBasic程序控制结构
4.1.3注释语句
为了提高程序的可读性,通常应在程序的适当位置加上必要的注释,
Visual Basic中的注释是“Rem”或“’”,一般格式为:
Rem
’
例如:Rem 交换变量a和b的值
c = a ´c
a = b:b = c
说明:
注释语句是非执行语句,仅对程序的有关内容起注释作用,它不
被解释和编译,但在程序清单中能被完整地列出。
赋值语句是在任何程序设计中最基本、最常用的语句。 它的作用是把计算右边表达式的运算结果赋值给左端的变量,Visual Basic使用赋值号“=”来赋值。
格式: [Let] 变量名=表达式 [Let] [<对象名.>]<属性名>=<表达式> 其中:Let表示赋值语句的关键字,通常可以省略。 功能:赋值语句具有计算和赋值的双重功能,它首先计算右端 的表达式,并把结果赋值给左边的变量,Visual Basic使用赋值号“=” 来赋值。 表达式:其类型应与变量名的类型一致,即同时为数值型或同 时为字符型等等。当两边同为数值型,但精度不同时,强制转换成 左边的精度,然后赋值。
第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 章
运行结果:
第04章 程序的控制结构
第 4 章
程序的控制结构
计算机中的问题求解过程
Example :银行定期存款 已知年利率rate,存款期为n年,本金为capital,n年后得 到的本利之和是多少?
Input
• 存款年数 • 本金 •利率
Process
deposit = capital* (1+rate)n
Output
deposit
Page 3
C语言程序设计
第 4 章
程序的控制结构
算法的概念及其描述方法
一个程序应包括两个方面的内容:
对数据的描述:数据结构(data structure) 对操作的描述:算法(algorithm)
著名计算机科学家沃思提出一个公式:
数据结构 + 算法 = 程序
计算机中的算法( Algorithm )
}
_ 15 Input a,b: 20
没有输入或有多个输入 有一个或多个输出
计算机与信息工程学院
Page 5
C语言程序设计
第 4 章
程序的控制结构
算法的描述方法
自然语言描述
传统流程图(Flowchart)
在1966年,Bohra 与 Jacopini 提出
N-S结构化流程图
1973年,美国学者I.Nassi 和 B.Shneiderman 提 出
为解决一个具体问题而采取的确定的有限的操作
步骤,仅指计算机能执行的算法。
计算机与信息工程学院
Page 4
C语言程序设计
第 4 章
程序的控制结构
算法的特性
有穷性 在合理的时间内完成 确定性,无歧义
程序的控制结构概述
}
4. 函数调用语句 语法格式如下: <函数名>( <实际参数表> ); 函数调用语句的作用是:将执行控制流程转移到与此语
句完全匹配的函数定义体的第一条语句处,开始执行;函数 体执行结束后,返回到此语句的下一条语句处继续执行。执 行流程如教材图4-1.
分支结构包含if和switch两个语句.
4.2.1 if语句的基本格式 语法格式如下:
if ( <条件表达式> ) 复合语句1
else 复合语句2 if 语句基本格式的语义是:如果条件表达式的值为真,
则执行复合语句1,否则,即条件表达式的值不为真,则执 行复合语句2。格式中“( <条件表达式> )”写法与“( <条 件表达式> != 0 )”写法等价。
【例4.1】 任意输入两个不同的整数,输出其中较大的一个。 #include<stdio.h> void main( )
{ c4: int x, y; c5: printf( "\n Input two numbers: \n" ); c6 : scanf( "%d%d", &x, &y ); c7 : if ( x > y ) c8 : { printf( "max = %d \n", x ); }
limits.h等,其内容可以在本地安装有C编译器的机器中找 到。一般在安装路径的包含文件夹内,如: \Program Files\Microsoft Visual Studio\VC98\Include。
4.2 分支结构
第四章结构化程序设计控制结构
•
PRINT*,‘X1=’,X1,’,X2=’,X2
•
40 RETURN
• END SUBROUTINE
3. IF 块
IF 块的构造形式为:
•
IF condition THEN
•
block1
•
[ELSE
•
blockE]
•
END IF
其中,condition是一个逻辑表达式,其结果不外乎真或假。 block1 和 blockE是语句块,当条件为真,block1 被执行; 否则,blockE 被执行。ELSE 块是可选的。
•
[CASE DEFAULT
•
blockD]
•
END SELECT
其中expr 必须是整型、字符型或者逻辑型变量。Selector 可以是同一类型, 非交叉的值或值范围(:用来规定值的范围)的列表。用CASE块统计 学生得分如下:
SELECT CASE ( INT(Final))
•
CASE (90:)
•
case default
•
PRINT*,‘Consonant’
•
END SELECT
•
ELSE
•
PRINT*,‘Something else’
CASE块的构造形式为:
•
SELECT CASE (expr)
•
CASE (selector1)
•
block1
•
CASE (selector2)
•
block2
•
D=D+1
•
ELSE
•
F=F+1
•
END IF
程序执行一旦发现某个逻辑条件为真,就不会再去判断其他
程序流程控制结构
4 2 5 多重循环
• 1 while循环语句嵌套的形式 • 2 for循环语句嵌套的形式 • 3 do~while循环语句嵌套的形式 • 4 三种循环语句的混合嵌套使用
第3节 转向控制
• 4 3 1 break语句 • 4 3 2 continue语句 • 4 3 3 break语句与continue语句的比较 • 4 3 4 return语句 • 4 3 5 goto语句
第4章 程序流程控制结构
• 第1节 选择控制结构 • 第2节 循环控制结构 • 第3节 转向控制 • 第4节 流程控制应用示例
返回
第1节 选择控制结构
• 4 1 1 二分支控制结构 • 4 1 2 多分支控制结构
4 1 1 二分支控制结构
• 1 二分支控制结构的语法格式及其功能 • 2 if语句的嵌套 • 3 if语句应用举例 • 4 条件运算符与if语句
4 3 5 goto语句
• 1 goto语句的一般语法格式与功能 • 2 有关goto语句的说明 • 3 goto语句应用举例
4 1 2 多分支控制结构
• 1 多分支控制结构的语法格式及其功能 • 2 几点说明 • 3 switch语句应用举例
2节 循环控制结构
• 4 2 1 while 语句 • 4 2 2 for 语句 • 4 2 3 do~while语句 • 4 2 4 三种循环语句的比较 • 4 2 5 多重循环
4 2 1 while 语句
• 1 while 语句的语法形式及其功能 • 2 while语句的特点 • 3 while语句应用举例
4 2 2 for 语句
1 for语句的语法格式与功能 2 执行过程说明 3 for循环语句的变化形式 4 for语句应用举例
第4章 流程控制
第四章程序流程控制一、顺序结构和选择结构任何一门编程语言都离不开流程控制,Java语言也不例外,一般流程控制有三种结构:顺序结构、选择结构和循环结构。
本节将主要介绍顺序结构和选择结构。
1.1 顺序语句其实所有的编程语言,发给计算机的命令都是按顺序一条条地执行的。
比如生活中的取钱任务一般按六步操作顺序完成。
这六步操作分别是:①带上存折或银行卡去银行;②取号排队;③将存折或银行卡递给银行职员并告知取款数额;④输入密码;⑤银行职员办理取款事宜;⑥拿到钱并离开银行。
下面的程序SequentialStatement.java就是按顺序一步一步地完成取钱任务的。
public class SequentialStatement {/*** 顺序结构语句的示例*/public static void main(String[] args) {System.out.println("第1步:带上存折或银行卡去银行");System.out.println("第2步:取号排队");System.out.println("第3步:将存折或银行卡递给银行职员并告知取款数额");System.out.println("第4步:输入密码");System.out.println("第5步:银行职员办理取款事宜");System.out.println("第6步:拿到钱并离开银行");}}上面的代码就是根据一定的顺序从main方法的{(左括号)开始到}(右括号)结束,来一行行地发送命令给计算机完成取钱的任务。
1.2 选择条件语句if条件语句是根据条件判断之后再做处理,if分支结构主要有以下几种。
l if(条件语句){…}。
l if (条件语句){…}else{…}。
l if (条件语句){…}else if(条件语句){…}else{…}。
AutoCAD二次开发实用教程第4章 程序流程控制
第4章 程序流程控制
4.1.1 GET族输入函数 7. GETANGLE,GETORIENT函数 2)(GETORIENT [基点][提示]) GETORIENT函数与GETANGLE函数相似,等待输入一个角 度,输入方式与GETANGLE相同。不同的是返回的是一个方 位角度值,即绝对角度(总是以正东方向为零度,逆时针方向 测量输入角度)。而GETANGLE返回的是相对角度(以当前零 度方向为基准,逆时针方向测量角度)。 例如: ANGBASE被设置为90°(正北),ANGDIR被设置为顺时针 方向,表4-2中列举了不同角度输入值时,GETANGLE和 GETORIENT的返回值。
第4章 程序流程控制
4.1.1 GET族输入函数 3. (GETREAL [提示]) 返回值:用户输入的实数。 例如: (SETQ val (GETREAL)) (SETQ val (GETREAL "缩放比例:")) 注意:用户不能输入其他AutoLISP表达式来响应GETREAL 的请求。
第4章 程序流程控制
况下顺序结构都是作为程序的一部分,与其他结构一起构成一 个复杂的程序。
第4章 程序流程控制
4.1.1 GET族输入函数 1.(GETXXX[<提示>]) <提示>是任意字符串,当调用GETXXX时,程序暂停<提示> 所提示的信息,显示在屏幕上等待用户输入指定类型的数据, 见表4-1,并返回输入的值。
第4章 程序流程控制
4.1.1 GET族输入函数 6. GETPOINT,GETCORNER函数 2) (GETCORNER<基点>[<提示>]) 注意:<基点>必须存在。GETCORNER函数需要一个以当 前UCS坐标系表示的基点作为参数,当用户在屏幕上移动光标 时,它会从这个基点开始拖引出一个矩形框。返回值与 GETPOINT类似,返回一个以当前UCS坐标系表示的点。 (SETQ Pt (GETCORNER '(1 2) "第二点:")) 第二点:5,4 返回值(5.0 4.0)
第4章c语言的三种基本结构
程序1: /*exp51.c*/ #include <stdio.h> main ( ) { int x, y;
scanf(“%d", &x); if (x<0)
y= -1; else if (x==0)
y=0; else
y=1; printf ("x=%d, y=%d\n", x, y); }
程序2:将程序1的if语句改为: /*exp52.c*/ #include <stdio.h> main ( ) { int x, y; scanf(“%d", &x); if (x>=0)
1. 顺序结构 先执行A, 再执行B.
A 表示 A B
B
2. 选择结构 存在某条件P, 若P为真,则执行A, 否则执行B。
TP F
A
B
表示为
TP F AB
另一种选择结构––多分支结构.
K
K=K1 K=K2
K=Kn
A1 A2 … Ai … An
3. 循环结构
有两种结构:当型和直到型 (1) 当型结构
例:计算10!并输出结果。
main()
main()
{
{
int i=1, sum=1;
int i=1; long sum=1;
loop: if (i<=10)
loop: if (i<=10)
{
{
sum=sum*i;
sum=sum*i;
i++;
i++;
goto loop;
goto loop;
}
}
printf(“10!=%d\n”,sum); printf(“10!=%ld\n”,sum
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§4.5.3 switch语句
switch语句可直接处理多分支选择,不使用分支嵌套,简化 程序结构。
表达式
=表达式1 =表达式2 =表达式n
=其他
语句组1
条件1 真 语句1
假
条件2 真 语句2
假
条件n-1
假 真 语句n
真
语句n-1
【例4.12】考试成绩百分制转换为五分制 main() { int score; char grade; printf(‚input score‛); scanf(‚%d‛,&score); if (score>=90) grade='A'; else if (score>=80) grade='B'; else if (score>=70) grade='C'; else if (score>=60) grade='D'; else grade='F'; printf(‚grade=%c\n‛,grade); }
【例4.6】输入一个字符,若是大写字母,将其变成小写 字母并输出。 #include <stdio.h> 0(不成立) main() ch>=‘A’&&ch<=‘Z’ { 1(成立) char ch; printf(‚ch=%c\n‛,ch+32) ch=getchar(); if(ch>='A'&&ch<='Z') { ch=ch+32; putchar(ch+32); putchar(ch); } }
(2)给出算法(自然语言描述) ① 累加计数变量初始化为0(清零); ② 输入一个成绩; ③ 判断:若该成绩<60,那么累加计数变量累加1; ④ 如果输入的成绩没有超过40个,转步骤② ;
⑤ 输出累加计数变量的值。
(3)用流程图表示算法
开始
累加计数变量为0
输入一个成绩
y
该成绩<60
n
累加计数变量加1
空语句
只有一个分号‚;‛,便构成了一条空语句。空语句 不执行任何操作,但在C语言中完全合法。 例如: sum=0;n=1; while(n<10); { 构成了死循环,用Ctrl+Break sum=sum+n; 退出死循环 n=n+1; }
§4.4顺序结构
【例4.4】 求三个整数的和及平均值 #include <stdio.h> 运行结果如下: 4 6 7 main() num1=4,num2=6,num3=7 { sum=17, aver=5.67 int num1,num2,num3,sum; float aver; printf(‚Please input three integer numbers: ‛); scanf(‚%d%d%d‛,&num1,&num2,&num3); sum=num1+num2+num3; aver=sum/3.0; printf(‚num1=%d,num2=%d,num3=%d\n‛,num1,num2,num3); printf(‚sum=%d,aver=%.2f\n‛,sum,aver); }
8 5
5
作业: 背诵课本P87【例4.5】交换x、y值的代码。
4.5 选择结构(分支结构)
双分支结构:可以是任意表达式: 非0:真 if(条件) 0:假 语句1; 不需要表达式 else 语句2;
一条语句。 如果需要写多条语句,必须在这 多条语句外加{ },构成复合语句
if( 表达式 ) 非 0 { 条件 语句1; … 语句 n; 语句 1; } else { 语句1; … 语句n; }
x+1 x+2 x+3 x+4 x<1 1≤x<2 2≤x<3 x ≥3
y=
1
2
3
代码如下: if(x<1) y=x+1; else if(x<2) y=x+2; else if(x<3) y=x+3; else y=x+4;
else中嵌套
多分支结构 if(条件1) 语句1; else if(条件2) 语句2; … else if(条件n-1) 语句n-1; else 语句n; else中嵌套
n
成绩个数>40
y
输出累加计数变量值
结束
§4.3 程序控制结构
一、顺序结构 按书写的先后顺序执行语句。 二、分支结构 按照当时的某个条件决定是否执行某些语句。 三、循环结构 在一定条件下反复执行某些语句,直到这个条件不成 立为止。
§4.2 语句
C程序构成:文件→函数→语句序列(操作步骤,动作)。 语句序列包括数据定义部分和执行部分。
4.5 选择结构(分支结构)
多分支结构(if的嵌套语句) if(条件) 语句1; if语句 else 语句2; if语句
【例4.11】编写一个程序,输入整数x的值,按下列公式 计算并输出y的值。
x+1 x+2 x+3 x+4 x<1 1≤x<2 2≤x<3 x ≥3
y=
1
2
3
代码如下: if(x<2) if(x<1)y=x+1; else y=x+2; else if(x<3) y=x+3; else y=x+4;
注意:if和else的匹配问题。 匹配原则:C语言规定,else总是与它前面最近的if(尚 没有和其它else匹配)匹配。
if(1<2) if(1<2) if(1>2) printf("1"); if(1>2) printf("1"); else else if(1<2) printf("2"); if(1<2) printf("2"); else printf("3"); else printf("3"); 运行结果如下: 2
运行结果:23 运行结果:234
【例4.13】考试成绩五分制转换为百分制 main() { char ch; scanf(‚%c‛,&ch); switch (ch) { case ‘A’:printf(‚90-100\n‛); case ‘B’:printf(‚80-89\n‛); case ‘C’:printf(‚70-79\n‛); case ‘D’:printf(‚60-69\n‛); case ‘F’:printf(‚<60\n‛); default: printf(‚error\n‛); } }
语句组2
语句组n
语句组n+1
整型、字符型常量表 整型表达式 达式,case后的值不 switch(表达式) 能重复 { case 常量表达式1:语句组1;break; case 常量表达式2:语句组2;break; …… 允许出现多条语句, case 常量表达式n:语句组n;break ; 外边不用加花括号。 default:语句组n+1; }
算法描述(流程图)
流程图:使用特殊的图形符号来描述算法。 流程线( )表示动作执行的顺序。
起止框( )、处理框( )、输入/输出框 ( )和判断框( )表示所要执行的动作。
【例4.1】写出下面问题的算法(用自然语言):统计全 班40个学生某门课程不及格的人数并输出。
(1)先透彻的理解问题
40个成绩,每输入一个成绩都要和60分比较,低于60分 的累加1计数,一共比较40次,输出统计结果。
switch(表达式) { case 常量表达式1:语句组1;break; case 常量表达式2:语句组2;break; …… case 常量表达式n:语句组n;break; default:语句组n+1; }
分析运行结果: switch(2) switch(2) {case 1:printf("1"); {case 1:printf("1"); case 2:printf(‚2"); case 2:printf(‚2"); case 3:printf(‚3"); case 3:printf(‚3"); break; default:printf(‚4"); default:printf(‚4"); } }
数据定义部分,数据类型 执行部分,由C程序语句组 成,是解决问题的操作步 骤(动作),即算法。
§4.2 语句
C语言的所有语句必须以分号;结束
C语言的五类语句: 1. 2. 3. 4. 5. 函数调用语句: scanf("%d",&x); 表达式语句: sum=x+y+z; 复合语句: { x=1; y=2; ...} 空语句: ; 程序结构控制语句: if/else、while语句
表达式=常量表达式1的值 语句组1 表达式=常量表达式2的值 语句组2
表 达 式
表达式=常量表达式n的值 语句组n
其他
语句组n+1
switch(表达式) { case 常量表达式1:语句组1; case 常量表达式2:语句组2; …… case 常量表达式n:语句组n; default:语句组n+1; }
【例1.2】计算三个数之和
#include <stdio.h> main() { int x,y,z; float sum; printf("input x,y,z:"); scanf("%d%d%d",&x,&y,&z); sum=x+y+z; printf("\nsum=%f\n",sum); }