当前课程知识点:“做中学”Java程序设计 >  第2章使用Java基本语法(2) >  2.11循环的跳出和继续 >  Video

返回《“做中学”Java程序设计》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《“做中学”Java程序设计》慕课在线视频列表

Video课程教案、知识点、字幕

在循环的过程当中

有时需要在特定的条件发生的时候

跳出循环

或者继续下一次的循环

这时候呢就需要用到我们今天介绍的break和continue的关键字了

下面我们先来看看break

我们在学习switch语句的时候

已经接触过了这个关键字

在执行完case语句以后

如果不需要继续地执行

我们可以在case语句的最后

加上了一个break语句

它的作用呢是跳出整个switch语句

将程序的控制流呢

跳转到switch之后的下一条语句

break的第二个应用场合

就是放在循环语句当中

通常break语句呢

可以放置在循环体中

在满足特定条件的时候执行break语句

它的作用啊就是强制跳出整个循环

将程序的控制流呢跳转到

break所在的循环之后的下一条语句

听起来有点绕

下面我们还是来看一下代码

看看它的执行效果吧

这里给出了break的示例程序

12到16行

有一个for循环

循环变量count呢从1开始

循环结束条件呢是小于或等于10

每次循环count自增

循环完的打印操作在每次执行循环体的时候

在控制台当中打印出count的当前值

这在当count小于5的时候

是没有任何问题

但当count自增到5的时候

我们发现 它满足13行的if条件表达式count等于5的条件

那么就会执行第14行的break语句

尽管此时我们循环变量count值呢只有5

还未到达循环结束条件10

但是break语句呢强制程序跳出所在的循环

也就是这里的for

因此实际系统呢只输出1,2,3,4这四个数字

并且

退出整个循环以后呢

我们的count值呢它的更新到了5

看了这个例子以后

再来理解break的含义

是不是简单得多了

接下来我们再来看一个用法类似

但作用完全不同的continue的用法

需要注意的是

continue语句只在循环当中使用

在循环体当中

如果你碰到了continue

它将跳过循环体当中的剩余代码

直接进入到下一次循环

针对循环的类型不同

它跳转的位置呢略有区别

对于for直接跳转到更新区域

对于while和do while语句

跳转到布尔表达式的终止判断位置

如果你还是无法明白continue含义

我们还是通过代码来解释

在这个事例当中 我们将上次break的位置呢改成continue

这对于count从1循环到4的情况没有任何变化

关键看当count等于5的时候

此时满足第12行的if判断语句

从而执行第13行的continue语句

根据前面的解释

continue作用呢它是跳过continue位置之后的所有剩余循环代码

也就是这里的14行

这意味着当前值5不会被打印出来

控制流呢直接跳转到了更新区域

也就是第11行的count++

count变成了6

随后进行循环中止条件的测试

这里的6小于等于10

仍然成立

继续执行

直到循环变量当中的保存的值超过10为止

由于count值不再是5 continue也就无法再次被触发

剩余的6,7,8,9,10也就依次打印在了控制台上

这两个关键字在实际应用场合还是比较多的

例如在很多循环次数不可预知的时候

我们就可以使用break进行循环的控制

下面我们来做个对比体会下它的用法

现在有十个学生组成的班级进行了一次测验

可以得到每个学生的测验成绩

它们是0到100之间的一个整数

现在需要你来写一个程序来确定这个班级的平均成绩

利用我们学过的知识

你完全可以完成这个任务

需要额外指出的是

Java1.5当中添加了一个新的scanner类

它的作用呢是可以根据用户的需要

从输入流当中读取所需的数据或者文本

同时它提供了一系列的方法

便于用户的读取操作

比如说你要读取一个整数

你就可以调用nextInt()方法

你要读取双精度数就可以调用nextDouble方法

如果要读取一行文本

你就可以使用nextLine方法

在具体使用时

首先要引入Scanner这个类

它放在java.util包里面

如果你是使用Alt+/

用eclipse自带的代码提示工具来自动完成类型输入的话

eclipse呢会自动地将该类的导入语句写上

否则你就需要自己手动地在代码的相应位置上写上导入语句

接着我们要创建一个Scanner对象

你可以在第10行这么写

这里的System.in代表台的输入流对象

好 需要注意的是这里的System的S是大写

整个语句创建了一个Scanner对象

并指定这个对象从控制台当中去读取用户输入的数据

有了它我们就可让用户从控制台当中把成绩输入进来

并且保存到一个叫score的变量当中

由于这里有10个学生

为了便于统计 我们先定义一个total变量来保存总成绩

统计的工作就是将用户的成绩累加上去

使用复合赋值语句就可以轻松地搞定

这样的工作需要重复十次

所以我们在第9行的位置上加入一个循环

最简单的方法就是使用一个for来实现

接着呢我们将所有需要操作的语句作为循环体

放置在for循环的大括号当中

使用代码的缩进来增加代码的可读性

这时候你可能会发现第13行当中的total下面有个波浪线

并提示相应的错误信息

将鼠标移动上去

上面的信息提示total这个植入变量没有被初始化

这里的total定义在main方法的内部

像这样定义在方法内部的变量呢我们称之为局部变量

它们在使用之前必须要初始化

你可以单击这个快速修复的链接

eclipse呢会自动地为你添加初始化语句

以完成代码的修复工作

最后呢我们将10个学生的成绩打印出来

这样就可以了

我们来快速地测试一下它的运行效果

这是学生数已知的情况

事实上每个班级的学生人数都是不一样的

为了让程序能适用各种不同的人数

你就无法固定学生的人数

除了固定人数之外

我们还能怎么样控制我们的循环呢

这里呢我们就要利用今天学过的break操作

使用标记来控制循环

我们知道用户的成绩呢

通常都是大于0的数

我们可以指定一个小于0的数

作为用户的退出标记

比如说-1

这样碰到一个退出标记时 我们就可以跳出循环

从而得到当前用户的平均成绩了

有了这个思路以后

我们就可以改造现有的代码

由于学生的人数是不固定的

所以我们先得增加一个n

用于保存统计学生的当前人数

接着我们需要在循环之前先读入用户的输入

当这个输入是一个有效成绩时

累加到total当中

并继续读入下一个成绩

直到用户输入的成绩呢是小于零的结束标志

同时每次循环我们需要对人数统计n呢进行自增

由于人数是不固定的

n就可能会出现0的情况

要避免平均成绩除0的错误

我们需要增加一个判断

然后在else语句块当中

显示No score的类似信息

好了今天的任务呢就完成了 你学会了吗

今天我们介绍了break,continue在循环当中的用法

你要掌握这两个关键字的书写规则

在需要的时候

能正确地使用它们

其实要正确地使用它们并不难

你只需要记住它们最大的区别在于

break在满足条件的时候将强制退出当前循环的循环体

而continue呢

则是跳过循环体后续的相关代码

直接进入到下一次的循环

“做中学”Java程序设计课程列表:

第1章初始Java

-1.1Java简介

--01Java简介

-1.2搭建Java开发环境

--Video

-1.3使用记事本编写Java程序

--Video

-1.4使用Eclipse开发Java程序

--Video

-1.5导入/导出Java项目

--Video

-1.6管理组织代码

--Video

-第1章初始Java--测试题

第2章使用Java基本语法(1)

-2.1认识标识符

--Video

-2.2变量和变量类型

--Video

-2.3数据类型和类型转换

--Video

-2.4使用常量

--Video

-2.5使用注释

--Video

-2.6使用运算符进行算术运算

--Video

-第2章使用Java基本语法(1)--测试题

第2章使用Java基本语法(2)

-2.7使用运算符进行逻辑处理

--Video

-2.8使用if进行流程控制

--Video

-2.9使用switch进行流程控制

--使用switch进行流程控制

-2.10使用循环

--Video

-2.11循环的跳出和继续

--Video

-2.12多重循环

--Video

-第2章使用Java基本语法(2)--测试题

第3章使用面向对象基础语法

-3.1认识类和对象

--Video

-3.2为类添加属性

--Video

-3.3为类添加方法

--Video

-3.4为类添加静态方法

--Video

-3.5递归方法

--递归方法

-3.6构造方法

--Video

-3.7重载方法

--Video

-第3章使用面向对象基础语法--测试题

第4章使用面向对象高级语法

-4.1使用继承语法

--Video

-4.2使用数组

--Video

-4.3使用数组类操作数组

--Video

-4.4使用抽象类

--Video

-4.5使用接口

--Video

-第4章使用面向对象高级语法--测试题

第5章捕获并处理异常

-5.1异常处理机制

--Video

-5.2捕获异常

--Video

-5.3创建自定义异常

--Video

-第5章捕获并处理异常--测试题

第6章使用SWT设计界面

-6.1SWT图形界面

--Video

-6.2使用SWT布局管理-FillLayout

--使用SWT布局管理-FillLayout

-6.3使用SWT布局管理-RowLayout

--使用SWT布局管理-RowLayout

-6.4SWT中的事件模型

--Video

-6.5常见事件处理写法

--Video

-第6章使用SWT设计界面--测试题

第7章微波炉模拟程序

-7.1微波炉模拟程序的界面制作

--Video

-7.2微波炉模拟程序的代码重构

--Video

-7.3微波炉模拟程序的事件监听

--Video

-7.4微波炉模拟程序的数字键盘

--Video

-7.6微波炉模拟程序CookTimer

--Video

-7.7微波炉模拟程序添加图像

--Video

-7.8微波炉模拟程序添加声音

--Video

-7.9微波炉模拟程序安装包制作

--Video

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。