第4章 流程控制
第四章 可编程序控制器(PLC)原理与应用)
分类 低档机 主要功能 具有逻辑运算、定时、计数、移位及自诊断、监控 等基本功能。有些还有少量模拟量I/O功能和算术运 算等功能 应用场合 开关量控制、定时、计数控制、顺序控制等场合, 有模拟量I/O功能的低档PLC应用更广 适用于既有开关量又有模拟量的较为复杂的控制 系统,如过程控制、位置控制等
年份 第一代1969~1972 第二代1973~1975 功能特点 逻辑运算、定时、计数、中小规模集成电路CPU,磁芯 存储器 增加算术运算、数据处理功能,初步行程系列,可靠性 进一步提高 增加复杂数值运算和数据处理,远程I/O和通信功能, 采用大规模集成电路,微处理器,加强自诊断、容错技 术 高速大容量多功能,采用32位微处理器,编程语言多样 化,通信能力进一步完善,智能化功能模块齐全 取代继电器控制 能同时完成逻辑控制,模拟量控制 适应大型复杂控制系统控制需要并用于联网、通信、 监控等场合 构成分级网络控制系统,实现图像动态过程监控, 模拟网络资源共享 应用范围
输 入 继 电 器
05 06 1000~1715 07 08 09 10 11 12 13 14
15
主机
15
15
扩Ⅰ
15
15
扩Ⅱ
15
15
扩Ⅲ
15
表4-7 输出继电器区域(共128点)
名称 范围 20CH 00 01 02 03 04 21CH 00 01 02 03 04 05 06 07 (08) (09) (10) (11) (12) (13) (14) 22CH 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 继电器地址通道 23CH 00 01 02 03 04 05 06 07 (08) (09) (10) (11) (12) (13) (14) 24CH 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 25CH 00 01 02 03 04 05 06 07 (08) (09) (10) (11) (12) (13) (14) 26CH 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 27CH 00 01 02 03 04 05 06 07 (08) (09) (10) (11) (12) (13) (14)
第4章 基本算法和流程控制
第 4 章 基本算法和流程控制本章主要介绍基本的算法、Visual Basic 语言的流程控制语句,包括 If 语句、Select Case 语句、 For Next 语句、While Wend 语句和 Do Loop 语句等。
4.1 基本算法对计算机编程语言来说,算法是用于求解某个特定问题的一些指令的集合。
具体地说,用计算机所能 实现的操作或指令,来描述问题的求解过程,就得到了这一特定问题的计算机算法。
4.1.1 算法和算法的描述方法1.什么是算法一般来说,所谓算法是指解决一个特定问题采用的特定的、有限的方法和步骤。
例如,计算 6!的步 骤是: 计算 1×2 的值为 2→计算 2×3 的值为 6→计算6×4 的值为24→计算 24×5 的值为 120, →计算 120 ×6 的值为 720,即 6!=720。
利用计算机来解决问题需要设计程序,在设计程序前要对问题进行充分的分析,设计解题的步骤与方 法,也就是设计算法,然后根据算法设计程序。
例如,计算 6!的值,上面已给出了计算的步骤,要实现上 述计算,需用变量 SUM 存放初值 1,以后存放每次乘积的值和最后的计算结果,用变量N 存放初值 0,用 N=N+1 使 N 依次取整数 1、2、3、4、5 和 6,用 SUM=SUN*N 完成每次的乘法运算。
根据上述算法,设 计计算 6!的程序代码如下。
SUM=1:N=0N=N+1:SUM=SUM*N N=N+1:SUM=SUM*N N=N+1:SUM=SUM*N N=N+1:SUM=SUM*N N=N+1:SUM=SUM*N N=N+1:SUM=SUM*N Print "6!= ";SUM如果使用上述算法计算 15!值,会使程序冗长而繁琐,这显然不是一个好算法。
考虑到程序中多次使 用 N=N+1 和 SUM=SUM+N 语句,可使用循环的方法,循环一次执行一次 N=N+1 和 SUM=SUM+N 语句, 一共循环 15 次。
第4章流程控制笔记
第四章流程控制主要学习内容:1、理解java语言中复合语句的使用方法;2、掌握if条件语句的使用方法;3、了解if语句与Switch语句之间的区别;4、掌握while循环语句的使用方法;5、掌握do-While循环语句的使用方法;6、了解while和do-while语句的区别;7、了解for语句的使用方法;8、了解foreach语句If语句:if执行的条件,如果条件成立,则执行if 后的语句,如果不成立,则跳出条件语句,往下执行;If语句分为简单的if条件语句,if……else语句和if……else if多分支语句;程序流程图:If语句中的表达式可以是一个单纯的布尔变量或常量,也可以是使用关系或布尔运算符的表达式;当条件成立执行语句体的时候,若语句体中仅有一条语句,则可以省略条件语句中的大括号“{}”;虽然if后面的复合语句只有一条,省略大括号并无语法错误,但是为了增强程序的可读性最好不要省略;If-else语句:如果满足某种条件,就进行某种处理,否则进行另一种处理;有时根据编程需要,else或if后面的括号里可以没有语句;对于if-else语句有时可以使用三元运算符进行简化;对于扩展的if-else if语句的执行,则是满足什么条件执行什么语句;If语句只执行条件为真的命令语句,其他的语句都不会执行;Switch语句:switch语句必须是整形和字符型,常量值1~N也必须是整形或字符型;switch语句首先计算表达式的值,如果表达式的值和某个case的值相同,则执行该case后的若干语句,直到遇到break为止,此时如果该case语句中没有break语句,则继续执行case后的若干语句,直到遇到break为止;若没有一个常量的值与表达式的值相同,则执行default后面的语句;default语句是可选的,如果它不存在,而且switch 语句中的值不与任何case的值相同,则switch语句不做任何处理;程序流程图:While 循环语句:while 语句也称条件判断语句,它的循环方式是利用一个条件来控制是否要继续反复执行这个语句;新手最需要注意的就是,在while 的表达式后面加上一个“;”这样会使循环进入无限循环也就是死循环,需要很多的时间去调试,很麻烦的;Do-while循环语句:程序流程图:从流程图中我们可以看出,while和do-while的区别就是do-while先执行一次循环体;For循环:For循环的表达式1只执行一次;。
第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)
DSP第四章 DSP程序流程控制
程序流程:指的是指令的执行顺序。 C55x中影响指令执行顺序的主要有: 程序跳转(分支) 指令重复执行 条件执行 中断
程序调用
程序的流程控制主要与指令缓冲单元(I单元)和程序流程单元(P 单元)有关。
第四章 程序流程控制
P单元产生24位的程序地址,并放到PAB总线上。
1=255
举例: RPTCC #7, AC1 > #0 ADD #1,AC0 ;AC0=AC0+1
第四章 程序流程控制
以下指令不能用做单指令循环体: B ;跳转 IDLE ;空闲指令 RPTBLOCAL ;块重复 RESET;软件复位 MOV RPTC, TAx ;RPTC单指令重复计数器
TRAP ;软件陷阱 MOV dbl(Lmem), RETA
RPTBLOCAL和RPTB区别
RPTBLOCAL被定义为指令缓冲队列(IBQ)的本地循环,即直接 从IBQ中获取循环体指令,这样可以减少功率消耗,但是循环 体指令的字数不能超过56个字节。 当循环体指令超过56个字节时,使用RPTB块循环。
第四章 程序流程控制 支持两层块循环 一层循环(外循环):BRC0, RSA0, REA0; 二层循环(内循环): BRC1, RSA1, REA1,BRS1;
第四章 程序流程控制
vector: (4) 执行中断服务程序 rs b _c_int00 nop ISR包含中断返回指令,当中断返回时,自动恢复以前保存 nop nmi b __ret 在寄存器中的内容。 nop nop 3、中断矢量及其优先级 int0 b __ret CPU接受和响应中断请求后,产生一个中断矢量地址,地址 nop nop 指向相关中断服务程序的中断矢量。书中表4-2。 . 多个中断同时发生时,CPU按照事先定义的优先级进行处理。 . . 优先级为0的优先权最高,随着优先级数的逐步增加,优先 dmac5 b __ret 权逐步减小。 nop nop
第4章讲义流程控制
§4-1 结构化程序设计
▪ 4.1.2 算法
“算法”是为解决一个具体问题而采取的确定的有限的 操作步骤。
▪ (数据结构)+(算法)= 程序
N·Wirth
▪ 算法的表示方法:
▪ 传统的流程图 ▪ N/S方框图 ▪ 自然语言 ▪ 伪码 ▪ 问题求解图(PAD)
明确问题
设计算法
描述算法
利用某种语言
The C Programming Language:Chapter 4
A
A
直到P成立
The C Programming Language:Chapter 4
§4-1 结构化程序设计
累加器s 置0 循环变量i 置1
s = s+i i =i+1 i<=100? 输出s
实例1的N/S方框图
The C Programming Language:Chapter 4
§4-2 C语句概述
精品
第4章流程控制
第四章 流程控制 ▪ §4-1 结构化程序设计 ▪ §4-2 C语句概述 ▪ §4-3 选择语句 ▪ §4-4 循环语句 ▪ §4-5 辅助控制语句 ▪ §4-6 习题
The C Programming Language:Chapter 4
§4-1 结构化程序设计
▪ 结构化程序设计思想 ▪ 算法 ▪ 传统流程图表示的三种结构 ▪ N/S方框图表示的三种结构 ▪ 小结
§4-1 结构化程序设计
▪ 4.1.3 传统流程图表示的三种结构
开始/结束框 一般处理框 判断框 输入/输出框 流程线 连接符
The C Programming Language:Chapter 4
§4-1 结构化程序设计
第4章 MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
4 越疆-Dobot-Python编程与机器人 第四章 流程控制语句(共3课时)
第四章流程控制语句第6课时教学目标:1.运用顺序结构编写程序2.激发学习算法与程序的兴趣,发展计算思维教学重、难点:运用顺序结构编写程序教学材料:1.计算机网络教室环境2.电脑3.VS Code编辑器4.机器人套件。
教学过程:一、场景导入(2min)讲述:Python程序结构分为三种:顺序结构、选择结构(分支结构)、循环结构。
任何简单或复杂的算法、程序都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。
这节课我们着重学习顺序结构。
二、知识讲授(8min)1.讲述:顺序结构是最简单的程序结构,程序按照编写顺序依次被执行,如图4.1所示:图4.1 顺序结构2.讲述:在前面几个章节中编写的程序大部分都采用顺序结构。
3.提问:还有哪些是可以只用顺序结构就能解决的问题?➢教学说明:老师请同学回答,并引出这节课要完成的实验三、动手实践——智能搬运机器人(一)(30min)(一)讲述:任务发布机器人从积木A区搬运一块积木到积木B区。
机器人和积木的摆放示意图如图4.2所示。
➢教学说明:老师在桌面上展示器材摆放方式。
图4.2 摆放示意图(二)讲述:任务分析开始获取机器人控制权限机器人初始化设置机器人运动到积木A区吸盘吸取积木机器人运动到积木B区吸盘释放积木机器人回到初始位置结束图4.3 机器人搬运积木程序流程图(三)布置任务同学们在坐标垫上摆放好器材,根据程序流程图编写程序。
➢教学说明:学生根据流程图编写程序,老师给予帮助。
(四)讲述:编写程序1.获取机器人控制权限与初始化设置接下来我们开始编写机器人搬运一块积木的程序。
首先获取机器人控制权限与初始化设置,程序示例如下所示:2.机器人搬运积木首先机器人运动到积木A区,吸取积木,然后机器人运动到积木B区,释放积木。
程序示例如下所示:3.运行结果运行程序后,可在终端查看对应的运行结果,并可观察机器人执行对应的任务。
➢教学说明:老师在编辑器编写程序,并讲解编程思路与Python语法知识。
流程控制
换一种书写方式: for (sum=0, i=1; i<=100; sum+=i,i++)
;
本章内容
流程控制概述 顺序控制 选择控制
if 语句 switch 语句
循环控制 无条件转移控制 程序设计风格
选择执行
在程序中,常常需要根据不同的情况来从一组语句 中选择一个来执行(分支),这是通过选择语句来 完成的。
若要按2来解释,则需要加上花括号(复合语句):
if (<表达式1>) { if (<表达式2>) <语句1> } else <语句2>
下面程序的结果是什么?
double average; average = 100.0; if ( average >= 60.0 )
if ( average < 70.0 ) cout << “Marginal PASS”;
{ <语句序列> }
<语句序列>中的语句可以是任何的C++语句;
复合语句中的语句序列一般按照书写次序执行。
语法上,复合语句可看作是一个语句。
复合语句一般作为函数体和结构语句(选择和 循环)的成分语句。
复合语句举例
{ int a,b; cin >> a >> b; int max; max = (a >= b)?a:b; cout << max << endl;
A
6
编程序,输入两个实数,输出它们的乘积。
开始 输入两个实数
计算乘积 输出结果
结束
7
顺序执行
(完整版)第4章MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是()。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;while kk=k-1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x) 10*x;”,则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是()。
D>> f=@(x,y) log(exp(x+y));>> A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
第四章结构化程序设计控制结构
•
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)
流程控制
a. 省略表达式1
b. 省略表达式2
c. 省略表达式3
d. 省略表达式1和表达式3
… i=1; for(;i<=100;) {
sum+=i; ++i; } …
e. 3个表达式同时省略
for(; ;) //语法上完全OK,无实际意义 相当于:
while(1)
补充
break不能单独用于if语句。 在多层嵌套的switch语句或循环中,break
只能终止离Ta最近的ቤተ መጻሕፍቲ ባይዱwitch语句或循环。
B. continue语句
continue语句用以跳过循环中剩余的语句 而强行进入下一次循环。continue语句只 能用于循环,常与if语句一起使用,即满足 条件时进入下一次循环。
② while循环
while循环与for循环
while循环示例:回文数
从键盘上输入一个整数,如果该数是回文数 ,返回YES,否则返回NO。(若任一自然 数,将其各位数字反向排列所得自然数与其 相等,则称这个自然数为回文数。如, 12321是回文数;但12345不是回文数)
③ do-while循环
a. 先计算表达式的值,假设为m。 b. 从第一个case开始,依次比较各常量表达
式和m的值。如果相等,就执行:后面的所 有语句,直至语句结束或碰到break,而不 管是否与剩下的case匹配;如果不相等, 就跳过:后面语句,继续比较下一个case。
c. 如果比到最后一个常量表达式都找不到相等 的,那么就执行default后面的语句。
当前情况下,for循环只能控制语句1执行的 次数,无法控制语句2执行的次数。
换句话说,语句2仅执行一次。
第4章 流程控制.ppt
4.1 C++语言的语句和程序结构
C++语句
?
控制语句
if () ~ else ~, switch
for () ~
while () ~ do ~ while() continue,break goto return
if (x>y) z=x;
else z=y;
函数调用 由一次函数调用加
语句
一个分号构成一个 语句。
4.2 选择结构语句
c) if … else if语句
if(表达式1) 语句1;
else if(表达式2) 语句2; else if(表达式3) 语句3; else 语句4;
注意缩排:语句相对于 上一个语句退后若干个 字符位置的书写方法。
缩排的目的就是为了使 源程序的层次清晰明了, 增加源程序的可读性。
输入a,b,c
是三角形吗?
Y
N
p (a+b+c)/2
输出“非
ssqrt(p*(p-a)*(p- 三角形!”
b)*(p-c))
输出s
3 4 5 s= 6
3 4 8 Not a triangle!
4.2 选择结构语句
2. 条件运算符
格式:<表达式1>?<表达式2>:<表达式3> 功能:先求出表达式1的值,若其值不等于0时, 则求出表达式2的值,否则求出表达式3的值。所以作 为运算的结果,或为表达式2,或为表达式3 例: a>=b?a:b; 等同于条件语句:
4.2 选择结构语句
#include <iostream.h> void main() { int c,s;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
public class WhileDemo { public static void main(String[] args) { //声明循环变量 声明循环变量i int i=0; //声明循环变量i,同时初始化 //循环条件 while(i<10) //循环条件 { System.out.println(i);//循环体 System.out.println(i);//循环体 //循环的迭代 i++; //循环的迭代 } } }
public class SwitchDemo { public static void main(String[] args) { int x=10; case后面一般是常量,且 后面一般是常量, 后面一般是常量 switch(x) { 必不可少, “:”必不可少,各分支顺 必不可少 case 1: 序可随意调换 { System.out.println("x=1"); break; } case 5: break不能省略 不能省略 { System.out.println("x=5"); break; } case 10: { System.out.println("x=10"); break; } default后面无常量, 后面无常量, 后面无常量 default: 但“:”必不可少 必不可少 { System.out.println("none"); break; } } } }
语句格式
do{ //循环体 语句或语句块 //循环体 while(循环条件表达式 循环条件表达式) } while(循环条件表达式);
do-while循环语句 4.2.2 do-while循环语句
while与do-while比较 while与do-while比较
public class DoWhileDemo { public static void main(String[] args) { //循环变量 int i=0; //循环变量 do { System.out.println(i);//循环体 System.out.println(i);//循环体 //循环迭代 i++; //循环迭代 //循环条件 }while(i<10); //循环条件 } }
for循环语句 4.2.3 for循环语句
语句格式
for(循环变量初始化表达式; for(循环变量初始化表达式; 循环变量初始化表达式 循环条件表达式; 循环条件表达式; 改变循环 变量表达式) 变量表达式) { //循环体 语句或语句块 //循环体 }
public class ForDemo { public static void main(String[] args) { //循环变量 循环条件、 循环变量、 //循环变量、循环条件、迭代 for(int i=0;i<10;i++) { //循环体 System.out.println(i); //循环体 } } }
教学目的及要求
掌握: 掌握:
if-else语句的使用 if-else语句的使用 switch-case语句的使用 switch-case语句的使用 while语句的使用 while语句的使用 do-while语句的使用 do-while语句的使用 for语句的使用 for语句的使用 continue、break语句的使用 continue、break语句的使用
概述
Java程序的基本组成部分 Java程序的基本组成部分
语句块(block):又称为复合语句, 语句块(block):又称为复合语句,是由一对 ):又称为复合语句 大括号限定起始边界的一个语句集。 大括号限定起始边界的一个语句集。 public class BirthDate{ int day; int month; int year; }
public class SeveralIf { public static void main(String[] args) { int x=10; int y=20; if(x>y) { System.out.println("x>y"); } else if(x==y) { System.out.println("x==y"); } else { System.out.println("x<y"); } } }
嵌套的if if语句 4、嵌套的if语句
语句格式: 语句格式:
if (条件表达式) { (条件表达式) 条件表达式 (条件表达式 条件表达式) if (条件表达式) { 语句或语句块1 语句或语句块1 } else { 语句或语句块2 语句或语句块2 } } else { 语句或语句块3 语句或语句块3 }
switch语句 4.1.2 switch语句
语句格式
switch(表达式) switch(表达式){ 常量值1: case 常量值1: 语句或语句块1 语句或语句块1 break; …… 常量n: case 常量n: 语句或语句块n 语句或语句块n 注:switch后面的表达式必须 switch后面的表达式必须 break; int类型是赋值兼容的 类型是赋值兼容的, 与int类型是赋值兼容的,即只 [default: byte、 语句或语句块n+1] 能为byte char、short及int。 语句或语句块n+1] 能为byte、char、short及int。 }
概述
Java程序的基本组成部分 Java程序的基本组成部分
语句(statement): ):以分号作为结束符的一条 语句(statement):以分号作为结束符的一条 完整命令。 完整命令。 //变量定义语句 int a,b,c; //变量定义语句 //空语句 ; //空语句 area=width*height;//表达式构成的语句 area=width*height;//表达式构成的语句
public class ForVariety { public static void main(String[] args) { for(int i=0;i<10;) { System.out.println(i); i++; } int i=0; for(;i<10;) { System.out.println(i); i++; }
练习
执行下列程序,输出结果是什么? 执行下列程序,输出结果是什么? public class Test1{ public static void main(String[] args) { int x=5; double y=22.5; s=”abc abc”; string s= abc ; s+=x+y; System.out.print(s); } }
循环语句(Loops) 4.2 循环语句(Loops)
循环语句的作用:在一定条件下, 循环语句的作用:在一定条件下,反复执行 一段程序代码。 一段程序代码。 循环结构组成: 循环结构组成:
循环变量的声明和初始化 循环条件 循环变量的迭代 循环体
while循环语句 4.2.1 while循环语句
语句格式
2、双路分支结构
语句格式: 语句格式:
条件表达式) if (条件表达式) { 语句或语句块1 语句或语句块1 } else { 语句或语句块2 语句或语句块2 }
public class DoubleIf { public static void main(String[] args) { int x=10; int y=20; if(x>y) { System.out.println(x); } else { System.out.println(y); } } }
ห้องสมุดไป่ตู้述
程序的控制结构:顺序结构、分支结构、 程序的控制结构:顺序结构、分支结构、循 环结构、 环结构、跳转结构 流程控制语句
分支语句:if-else、switch分支语句:if-else、switch-case 循环语句:while、do-while、for 循环语句:while、do-while、 跳转语句:continue、break、return、 跳转语句:continue、break、return、label 异常处理语句:try-catch-finally、 异常处理语句:try-catch-finally、throw
1、单一分支结构
语句格式: 语句格式:
条件表达式){ if (条件表达式){ 语句或语句块 }
if语句体只有一 注:当if语句体只有一 条语句时, 条语句时,可以不用大 括号(建议不省略)。 括号(建议不省略)。
public class SingleIf { public static void main(String[] args) { int x=10; int y=20; if(x>y) { System.out.println(x); } } }
public class NestedIf { public static void main(String[] args) { int x=10; int y=20; if(x==10) { if(y==20) { System.out.println("x==10 and y==20"); } else { System.out.println("x==10 and y!=20"); } } else { System.out.println("x!=10"); } } }
练习
执行下列程序,输出结果是什么? 执行下列程序,输出结果是什么? public class Test1{ public static void main(String[] args) { int a=16; int b=2; do{ a/=b; }while(a>3); System.out.print(a); } }