Java软件设计基础 3. 流程控制.

Slides:



Advertisements
Similar presentations
阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Advertisements

10.2.switch语句.
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
迴圈 迴圈基本觀念 while迴圈 do 迴圈 for迴圈 巢狀迴圈 迴圈設計注意事項 其他控制指令 迴圈與選擇的組合.
第4章 选择结构程序设计 选择结构是计算机科学用来描述自然界和社会生活中分支现象的手段。其特点是:根据所给定选择条件为真(即分支条件成立)与否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作,并且任何情况下恒有“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
第六章 循环控制.
Tool Command Language --11级ACM班 金天行.
JavaScript 语言基础.
4.3 运算符 4.3 运算符 运算符是一种特殊符号, 一般由1-3个字符组成,用于实现数据之间的运算、赋值和比较。运算符共分以下几种 :
第 5 章 流程控制 (一): 條件分支.
Oracle数据库 Oracle 子程序.
数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.
C语言程序设计教程 (第4版) 第5章 循环结构 李丽娟 2013年2月.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
C#程序设计基础 $5 流程控制.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C程序设计.
C++Primer 3rd edition 中文版 Chap 5
第7章:文件共享 与远程控制——回顾 第8章:bash脚本编程 本章教学目标: 了解shell程序的基本结构 网络文件系统NFS的概念
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
第3章 C语言的基本语句 和程序结构设计.
走进编程 程序的顺序结构(二).
辅导课程六.
第4章 选择结构程序设计 4.1 关系表达式和逻辑表达式 关系表达式 1.关系运算符 关系运算符是比较两个操作数大小的符号。
第六章 循环结构程序设计 概述 while 语句 do-while 语句 for 语句 循环的嵌套 几种循环的比较
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
ENVI-IDL可视化程序设计 楚雄师范学院地理科学与旅游管理学院 杨云源 QQ:
第五章 循环结构的C程序设计 5.1 while循环语句 5.2 do-while循环语句 5.3 for循环语句 5.4 多重循环
第3章 选择结构与循环结构 王德俊 上海交通大学继续教育学院.
第二章 Java语言基础.
第六章 循环控制.
C++程序设计 第三章 程序设计初步.
第4章 PHP流程控制语句.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
1.3 C语言的语句和关键字 一、C语言的语句 与其它高级语言一样,C语言也是利用函数体中的可执行 语句,向计算机系统发出操作命令。按照语句功能或构成的不 同,可将C语言的语句分为五类。 goto, return.
C语言程序设计 主讲教师:陆幼利.
第2章 Java语言语法基础 Java是一种跨平台的面向对象语言,利用该语言可以生成独立于平台的应用程序。Java语言具有众多优点,如面向对象、可移植、与硬件无关等。 我们将介绍Java语言最基本的内容,先从Java编程基础开始,介绍Java语言的基本语法然后,介绍几种常用算法的示例,强化对Java语言的认识。
姚金宇 MIT SCHEME 使用说明 姚金宇
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
《计算机应用基础》 第9章 程序设计基础(二).
几种基本语句 条件语句 广州市63中 岑光.
第4章 Excel电子表格制作软件 4.4 函数(一).
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第九节 赋值运算符和赋值表达式.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
3.16 枚举算法及其程序实现 ——数组的作用.
College of Computer Science & Technology
1.2基本算法语句 1.2.3循环语句.
输入语句 输出语句 赋值语句 条件语句 循环语句
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
ASP.NET实用教程 清华大学出版社 第4章 C#编程语言 教学目标 教学重点 教学过程 2019年5月5日.
第二章 Java基本语法 讲师:复凡.
第二章 Java基本语法 讲师:复凡.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Do While 迴圈 東海大學物理系‧資訊教育 施奇廷.
第3章 Java语句及其控制结构 主要任务 了解Java程序的结构,学习使用各种语句结构来控制程序的流程,完成程序的功能任务。
第二章 Java基本语法 讲师:复凡.
五 循环结构程序设计 厦大附中信息技术.
Java程序设计 第3章 控制语句.
第四章 UNIX文件系统.
第十七讲 密码执行(1).
第三讲 程序设计准备知识 一、程序编辑器.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
编译原理实践 6.程序设计语言PL/0.
Presentation transcript:

Java软件设计基础 3. 流程控制

3.1 语句控制结构 语句类型 变量声明语句 表达式语句 复合语句 用来声明变量,格式为: 在一个表达式的最后加上一个分号构成的语句,分号是语句不可缺少的部分,格式为: 复合语句 将相关语句组合在一起就构成复合语句,复合语句用{ }括起来。 [修饰符] 类型名 变量名1[,变量名2][,…]; [修饰符] 类型名 变量名1[=初值1][,变量名2][=初值2][,…]; 变量=表达式;

控制语句(control statement) 空语句 空语句是什么都不做的语句,形式为: 方法调用语句 方法是一系列相关的程序语句的集合,能实现一定的功能。可以直接调用已定义好的方法来简化程序的编写。格式为: package和import语句 泛指包含package(包)和import的语句,与类、对象有关。 控制语句(control statement) 通常源文件中的语句按照它们出现的顺序从头到尾执行,但是控制语句通过使用决策、循环和分支来改变执行流程,使程序按照条件执行特定的代码块。控制语句分为以下几类: ; 定位标识.方法名(参数列表);

顺序结构:在程序执行时,根据程序中语句的书写顺序依次执行的命 令序列。 分支结构:又成为选择结构,是在程序执行时,根据不同的条件,选 择执行不同的程序语句,用来解决有选择、有转移等诸多问题,完成应 用程序中的智能判断功能。

循环结构:使某些语句或程序段按条件重复执行若干次,直至该特定 条件不满足为止。循环有以下特点: a.只有一个入口和出口; b.结构内的每部分都有机会被执行; c.结构内没有“死循环”,即无终止循环或无限循环。

3.2 分支结构 if条件语句 if-then语句 if-then-else语句 说明 是所有控制语句中最基础的语句,只有特定检测结果为true时,它才通知程序执行特定的代码段。 if-then-else语句 当if子句的计算结果为false时,该语句提供第二个执行路径。 说明 条件表达式是任意一个返回布尔型数据的表达式; 简单语句可以省略前面的花括号。 决定什么时候省略括号是个人的习惯,但会导致代码更加脆弱。如果 以后在then语句后面加入第二个语句,常见的错误是忘记加上必须的括 号。编辑器不能识别这样的错误,将会得到错误的结果。 以上两种条件语句的结构和格式如下:

首先计算布尔表达式,若为真,则执行语句1,否则就直接转入if语句的后续语句

上述语句不能产生正确的结果。该错误很难发现,因为这并非编译错误或者是运行时错误。这属于逻辑错误。 复合条件 若if语句的布尔表达式由一个简单判断给出,称为简单条件;若由多个简单条件经过逻辑运算而得到,称为复合条件。

嵌套条件语句 Java中没有提供象elseif这样的关键字来进行多条件分支。三种选择或以上的分支就需要利用if语句的嵌套来实现。程序从上往下依次判断布尔表达式的条件,一旦某个条件满足,就执行相关语句,然后就不再判断其余的条件,直接转到if语句的后续语句去执行。else总是与离它最近的if语句配对。

优秀的书写方式:

I/O编程经常涉及到人可以阅读的简洁的格式化数据转换。JAVA平台提供扫描器Scanner把输入分割成和数据位相关联的记号,格式化数据。默认情况下,扫描器使用空白分隔记号。

switch多分支语句 允许使用任意数量的可能执行路径,当分支过多时,比嵌套条件语句更具有直观性、便捷性。格式如下:

说明 显然,通过if-else语句的嵌套也能实现switch语句的功能,但通常使用switch语句更简练,而且可读性强,程序的执行效率也高; 表达式的返回类型必须是byte,short,char和int四种类型,或者是以后将讨论的枚举类型(enumerated type),还可以是“包装”特定原始类型的几个特殊类:Character,Byte,Short和Integer; case子句中的值必须是常量,且值应该不相同; case的分支中有多个执行语句时不必用“{ }”括起; default子句是可选的,它处理没有被任何case语句显式处理的值。若表达式中的值与所有case都不相配,且没有default子句,则跳出switch语句; break语句的作用是执行完一个case分支后使程序跳出switch语句块,它是可选的,如果没有这条语句,流程控制将一个接一个的执行后续的case操作,这样分支语句将变得效率极低且容易误操作。但是有时候程序员也会将其省略以达到某些特殊需要。

在一些特殊情况下,多个不同的case值要执行一组相同的操作,可以写成如下形式:

执行过程 计算表达式的值,同case分支比较,如果相同则执行相应的语句块,否则继续向下比较,直至找到相同的case值或者到达default分支; 在default分支不存在的情况下,则跳出整个switch语句; Switch语句的每一个case判断,都只负责指明流程分支的入口点,而不负责分支的出口点,分支的出口点需要编程人员用相应的跳转语句来标明。

3.3 循环语句 while语句 是Java最基本的循环语句,格式如下: 其中,while是关键字,布尔表达式是循环条件,语句为循环体。 执行过程如下:首先判断布尔表达式,若为真,则执行循环体,然后再判断条件,直到布尔表达式的值为假,停止执行语句。

注意: 该语句是先判断后执行,若一开始条件就不成立,则不执行循环体; 在循环体内部一定要有改变条件的语句,否则是死循环。 do-while语句 格式: do-while语句是“先执行后判断”型,先执行一次循环体中的语句,然后测试布尔表达式的值,若为true,则继续执行循环,否则执行do-while语句的后续语句。

例程

for语句 是三种循环语句中功能较强、形式灵活、使用较频繁的循环语句结构,尤其适合于循环次数清晰的场合。

执行过程: 按表达式1将初值赋给循环控制变量; 按布尔表达式判断循环是否成立,即判断控制变量的值是否满足布尔表达式的条件,若条件不成立,则转步骤⑤;若条件成立,则执行循环; 按表达式3修改控制变量; 返回步骤②; 结束循环,执行for语句的后续语句。 for语句中循环控制变量必须是有序类型。循环控制变量初值和终值通常是与控制变量类型相一致的常量,也可以是表达式。对控制变量的初始化只执行一次,而循环次数由初值和终值决定。

其他形式: 当“表达式1”、“表达式2”、“表达式3”都为空的时候,相当于一个无限循环,如: 有时,for语句在“表达式1”和“表达式3”的位置上需要包含多个语句,由于不能在for语句的“( )”中使用“{ }”来定义复合语句,因此提供了用逗号分隔的语句系列。如:

例程 在for语句的圆括号的后面加个分号,则相当于for语句的循环体为空语句。例如:

增强的for语句 用于在集合和数组之中进行迭代,可以使循环更加紧凑和容易阅读。 注意:在这个程序中,变量item保存从数字数组获得的当前值。只要情况允许,尽量使用for循环的增强形式。

循环嵌套 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多重循环。while、do-while、for之间都可以互相嵌套使用。

跳转语句用来实现程序执行过程中流程的转移。 3.4 跳转语句 跳转语句用来实现程序执行过程中流程的转移。 goto语句使程序结构混乱,可读性差; Java语言取消了goto语句,通过break语句、continue语句和return语句实现流程的转移。 break语句 使程序的流程从一个封闭语句块(如switch)中跳出来,也可以用于退出一个循环(如do、for、while),此外,还可以跳到相应的标记位。 分类: 不带标号的break语句 从它所在的switch分支或最内层循环中跳出来,执行分支或循环体后 面的语句。 不能用于循环语句和switch语句之外的其他任何语句中。

带标号的break语句 break语句的语法格式如下: 设置标记的语句格式: break 标号; “标号”是程序中设置好的标记名,程序跳到标号所在的语句或者语句 块的下一句开始执行。 break语句必须在加标记的代码块的内部才可以跳到标记位。 break终止带加标记的语句,不是把控制流转移到标记位置,而是转移 到紧跟在标记的语句(块)后面的语句。 可以把标号设置在任意的语句或语句块之前。 break 标号; 标号: 语句

continue语句 continue语句只能在循环语句中使用。 它和break语句的区别是:continue语句只终止本次循环,而不是终止整个循环;而break语句则是结束整个循环语句的执行。 continue语句同样有两种格式: 不带标号 终止本次循环,即跳过循环体中continue语句后面的语句,回到循环 体的条件测试部分继续执行。注意:只能跳过本次循环的剩余语句。 带标号的情况 跳过标号指出的语句块中的所有余下语句部分,回到标号所指语句块 的条件测试部分继续执行。 标号应该定义在程序中外层循环语句的前面,用来标志这个循环结构。 带标号的continue语句使程序的流程直接转入标号标明的循环层次。 continue 标号; 标号: 语句

return语句 用来从当前方法中退出,可使正在执行的分支程序返回到调用它的方法的相应语句处,并从紧跟该语句的下一条语句继续执行,格式如下: 说明: 表达式的值就是被调用方法的返回值,如果方法没有返回值,则return语句中的表达式可以省略; 如果方法中没有出现return语句,则执行完方法中的最后一条语句后自动返回调用它的方法。 return [表达式];