当前课程知识点:Java程序设计 > 第一章 Java语言基础知识 > 1.4-算法的流程控制 > 1.4.1-算法的流程控制
大家好 欢迎回来继续学习
Java语言程序设计
那这一节呢
我们来学习算法的流程控制
我们知道略微复杂一点的算法
它不可能总是用顺序语句来构成
肯定会用到选择
循环这样一些结构
那么在java中呢
算法的流程
是由流程控制语句来控制的
包括if语句
switch case语句
for语句while语句
还有do while语句
以及呢这种从循环中跳出
或者终止当前循环的
这样的break语句
还有continue语句
下面呢
我们来学习这些语句的语法细节
首先让我们来看If语句的语法
我们可以有这样几种形式
比如说只有if分支
当这个boolean表达式为真的时候
就执行if分支
为假的时候 什么都不做
或者呢用这种if-else式的结构
当boolean表达式为真的时候
执行if分支里面的内容
否则呢执行else分支里的内容
另外我们还可以用多个else if
相当于多次在else分支里面
再嵌到if else语句
整期的嵌套
这样就是if
然后后面多个else if结构
最后一个else
这样的形式呢
可以实现这种多选择
这些呢
跟我们在C语言中
学过的是一样的
我们就不给出更多的具体例题了
刚才我们介绍了呢
在java里面
我们有条件运算
那现在我们学过
if-else语句以后
我们看看如果说
我们面临的问题是这样
当a大于b
也是if a大于b为真的情况下
我们选出这个
比较大的数是a输出
否则的话
我们选出这个
比较大的数是b输出
如果我们要完成的任务
是这个任务
我们完全可以不用if-else语句
而用条件运算
我们看到用条件运算的话
第一个表达式先计算a大于b
为真还是假
如果为真
那么a为整个表达式的结果
否则呢以b为整个表达式的结果
所以对于简单的if-else语句
来说呢
我们用条件运算去替代它
使得程序更为简洁
switch语句呢
也是进行这种选择的
只不过他的特殊点在于什么呢
特殊点是要根据一个表达式的值
决定接下来走向哪一个分支
所以我也叫它作开关语句
那么这个switch语句
里面的这个表达式
需要是整数类型的
基于整数的类型的
然后我们将这个表达式
与每个case标号进行比较
与哪个标号相符
接下来就从哪一句开始执行
但是执行到什么地方结束呢
switch case 本身并不决定
你走到这一分支以后
执行到哪结束
所以非常重要的一点就是
在每个case分支后面
最后都要有一个break语句
让它结束整个switch case结构
到switch case语句之后的
逻辑上下一条语句去
那么for语句呢
是功能非常强的一个循环语句
用来处理什么样的问题呢
循环语句就是处理
我们用同样的算法
依次处理大批量不同数据的
这样的问题
在java中呢
跟C语言中一样
也是有三种循环语句
那么for语句呢
是这三种循环语句中
功能比较强的
也是实用比较广泛的
一个循环语句
for循环呢
它可以嵌套
也就是说有外层for循环
还可以有内层for循环
那么for循环的语法形式呢
非常简洁
首先呢它的初始表达式
是一般来说
是用来给循环控制变量
或者是其他的初始变量
做初始化用的
然后中间呢
是循环控制条件的判断
当中间这个循环控制条件
判断的表达式为真的时候
循环体得以继续执行
每次执行完循环体以后
就去执行括号中的第三个表达式
一般是用来更新
循环控制条件用的
在java中呢
还提供了一种
叫做增强的for循环
那么是专门用来对数组
或者集合类型的对象进行遍历的
那么它的语法形式呢
我们可以看到
在括号里面
也不写这种初始化 条件判断
或者说(布长)增值
这些都没有了
因为它的作用就是说
将一个数组里面的所有元素
或者我们稍后
在后面要学的
集合类型对象里面的
所有元素从头到尾遍历一遍
那么他就定义一个
引用名在这个地方
然后呢后面给出这个数组对象名
或者说集合类型的对象名
那么这个循环呢
就自动的进行多次
多少次呢
你在里面有多少个对象元素
就是你的集合里面
数组里面
存了多少个元素对象
他就循环多少次
把每一个元素
依次处理一遍
这样的增强for循环呢
在处理集合类型的时候
是非常方便的
那后面当我们学到
集合类型的时候
我们会看到
使用增强for循环
去遍历一个数组
或者集合的这样的具体的实例
在这一章呢
我们就不给出这个实例了
while语句呢
也是一个循环语句
它是每次进入循环体之前呢
要检查括号里面的
这个循环控制表达式
当表达式为真的时候
就进入循环体
执行循环体
什么时候表达式为假了
就退出不执行了
do-while语句呢
跟while语句
有某些相似之处
只是呢他是先进入循环体
至少执行一套循环以后
在循环结束的时候
每次循环结束的时候
去判断while后面括号里面的
这个表达式条件
是不是为真
如果条件为真
会继续执行do后面的循环体
什么时候条件为假了
就退出循环
不执行循环体了
所以它的特点是
循环体至少要执行一次
而刚才看到的while循环呢
如果一开始这个循环控制条件
就为假的话
循环体有可能一次都不执行
break语句呢
我们刚才在switch case语句中
看到了
在每个switch结构的分支的最后
就要加一个break语句
来跳出整个switch case结构
表示我们这个分支执行完了
其他的不必要执行了
我就离开switch case了
除此之外呢在循环中
我们也可以用break
如果循环中出现了break
那么当循环执行到这一句的时候
就直接跳出包围着
他的最内层循环
然后去到这个循环之后的
逻辑上下一个语句开始执行
那么也可以呢用在代码块里面
跳出他指定的这个块
continue语句呢
是用于循环结构中的
它的作用是停止本次循环
停止本次迭代
那是不是彻底离开循环呢
不是
这跟break不一样
它只是停止本次循环
本次循环还有后半截没做完
那怎么办 不做了
直接回到循环的起始处去判断
是否需要开始下一次循环
那么使用形式呢有两种
可以是不带标号的
也可以是带标号的
这一节呢
我们介绍了java的流程控制
介绍了选择结构 if语句
开关语句 switch case语句
循环语句三种 for循环
while循环 do while循环
那么这些呢
跟我们在C语言中学过呢
都基本是一样的
而java里面
在for循环中多了一种
增强性的for循环
这个呢我们在后面学到
集合类型的时候
会给大家看到
怎么样把它用在集合类型上面
-1.0-导学
--1.0-导学
-1.1-Java与面向对象程序设计简介
--第一章 Java语言基础知识--1.1-Java与面向对象程序设计简介
-1.2-基本数据类型与表达式
-第一章 Java语言基础知识--1.2-基本数据类型与表达式
-1.3-数组
--1.3.1-数组
-第一章 Java语言基础知识--1.3-数组
-1.4-算法的流程控制
--第一章 Java语言基础知识--1.4-算法的流程控制
-1.5-第一章小结
-第一章编程练习题
-课件
--外部链接
-Java环境配置、Eclipse使用、Helloworld程序详解
--使用eclipse建立Java项目、编写和运行Java程序
-Java数据类型
--Java整数类型
--Java浮点类型
--数据类型实战
--数据类型转换
--Java强制类型转换精度损失示例与表达式中的数据类型转换
-Java数组
-Java变量
--Java的变量
-命令行参数
--命令行参数的介绍
-2.0-导学
--2.0-导学
-2.1-面向对象方法的特性
--第二章 类与对象--2.1-面向对象方法的特性
-2.2-1-类声明与对象创建
--第二章 类与对象--2.2-1-类声明与对象创建
-2.2-2-数据成员
--第二章 类与对象--2.2-2-数据成员
-2.2-3-方法成员
--第二章 类与对象--2.2-3-方法成员
-2.2-4-包
--2.2-4-包
--第二章 类与对象--2.2-4-包
-2.2-5-类的访问权限控制
--第二章 类与对象--2.2-5-类的访问权限控制
-2.3-1-对象初始化
--第二章 类与对象--2.3-1-对象初始化
-2.3-2-内存回收
--第二章 类与对象--2.3-2-内存回收
-2.4-枚举类
--2.4-枚举类
--第二章 类与对象--2.4-枚举类
-2.5-应用举例
--2.5-应用举例
-2.6-第2章小结
-第二章编程练习题
-课件
--第二章课件
-3.0-导学
--3.0-导学
-3.1.1-3.1.2-类继承的概念和语法
--第三章 类的重用--3.1.1-3.1.2-类继承的概念和语法
-3.1.3-隐藏和覆盖
--第三章 类的重用--3.1.3-隐藏和覆盖
-3.2-Object 类
--第三章 类的重用--3.2-Object 类
-3.3-终结类与终结方法
--第三章 类的重用--3.3-终结类与终结方法
-3.4-抽象类
--3.4-抽象类
--第三章 类的重用--3.4-抽象类
-3.5-泛型
--3.5-泛型
--第三章 类的重用--3.5-泛型
-3.6-类的组合
--3.6-类的组合
-3.7-小结
--3.7-小结
-第三章编程练习题
-课件
--课件
-4.0-导学
--导学
-4.1-接口
--接口
--第四章 接口与多态--4.1-接口
-4.2.1-4.2.2-类型转换
--类型转换
--第四章 接口与多态--4.2.1-4.2.2-类型转换
-4.2.3-方法的查找
--方法的查找
--第四章 接口与多态--4.2.3-方法的查找
-4.3-多态的概念
--多态的概念
--第四章 接口与多态--4.3-多态的概念
-4.4-多态的应用举例
--多态的应用举例
--第四章 接口与多态--4.4-多态的应用举例
-4.5-构造方法与多态性
--构造方法和多态性
--第四章 接口与多态--4.5-构造方法与多态性
-4.6-本章小结
--本章小结
-第四章编程作业
-课件
--课件
-5.0-导学
--5.0-导学
-5.1.1-5.1.2-异常处理的概念
--第五章 输入输出--5.1.1-5.1.2-异常处理的概念
-5.1.3-5.1.5-异常的处理
--第五章 输入输出--5.1.3-5.1.5-异常的处理
-5.2-输入输出流的概念
--输入输出流的概念
--第五章 输入输出--5.2-输入输出流的概念
-5.3.1-写文本文件
--写文本文件
--第五章 输入输出--5.3.1-写文本文件
-5.3.2-读文本文件
--读文本文件
--第五章 输入输出--5.3.2-读文本文件
-5.3.3-写二进制文件
--写二进制文件
--第五章 输入输出--5.3.3-写二进制文件
-5.3.4-读二进制文件
--读二进制文件
-5.3.5-File类
--File类
-5.3.6-处理压缩文件
--处理压缩文件
-5.3.7-对象序列化
--对象序列化
-5.3.8-随机文件读写
--随机文件读写
-5.4-本章小结
--本章小结
-课件
--课件
-6.0-导学
--导学
-6.1-Java集合框架介绍
--第六章 对象群体的组织--6.1-Java集合框架介绍
-6.2-主要接口及常用的实现类
--第六章 对象群体的组织--6.2-主要接口及常用的实现类
-6.3-常用算法
--常用算法
-6.4-数组实用方法
-6.5-基于动态数组的类型(Vector, ArrayList)
--基于动态数组的类型(Vector, ArrayList)
-6.6-遍历Collection
-6.7-Map接口及其实现
-6.8-第6章小结
--第6章小结
-课件
--课件
-7.0-导学
--导学
-7.1-绘图
--绘图
-7.2-Swing基础
--Swing基础
-7.3-Swing的层次
--Swing的层次
-7.4-布局管理
--布局管理
-7.5-内部类
--内部类
-7.6-事件处理的基本概念
-7.7-事件派发机制
--事件派发机制
-7.8-顶层容器
--7.8-顶层容器
-7.9-中间层容器(一)
-7.10-中间层容器(二)
-7.11-原子组件(一)
-7.12-原子组件(二)
-7.13-原子组件(三)
-7.14-其它Swing特性
-7.15-第7章小结
-课件
--课件