当前课程知识点:“做中学”Java程序设计 >  第2章使用Java基本语法(2) >  2.12多重循环 >  Video

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

Video在线视频

Video

下一节:Video

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

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

在上一讲当中我们介绍了while do-while for 三种常见循环的语法

在实际使用当中 我们还可以将循环相互嵌套

形成一种多重循环的复杂结构

今天呢我们就来简单的聊一聊多重循环

所谓多重循环 就是循环的一种嵌套形式

也就是说我们可以在外层循环的循环体内

嵌套一层内层循环

根据嵌套的层次 可以分为二重循环 三重循环 等等等等

为了更好的理解多重循环 我们先来回顾一下单重循环

这段代码的作用是循环十次

每次在控制台当中打印一个*号

整个程序执行以后呢 将在控制台上看到连续的十个*号

这是我们熟悉的单重循环结构

现在我们对它进行扩展

在它的外侧增加一层循环

这就形成了二重循环的结构

那么它的运行效果是什么呢

刚才我们分析过

这里的for col=0 col<10

这个循环的作用是输出十个*号

你可以把它的输出等价的替换到那层循环部分

这样一个二重循环就退化为简单的一重形式

现在再来看看它的作用是什么

那么这个二重循环的作用就是打印五行 每行呢打印十个*号

不管是for while 还是do-while 你都可以实现这样的嵌套循环

甚至可以将它们灵活的组合起来使用

需要特别注意的是

当我们嵌套循环当中使用continue和break的时候

它们只对所属的那层循环起作用

我们来举个例子吧

在这段代码当中

我们在内层循环的位置加了个if条件语句

它在i%2==0的时候条件成立

会执行一个break语句

一开始我们的i它的初始值是0

当执行这个内层循环的时候

就会立刻发现这里的i%2==0条件成立

所以它就会执行这里的break

而这里的break位于内层循环的循环体当中

这也就是说 它将跳出内层循环

跳到我们的System.out.println的位置上

从而继续外层的下一次循环

经过i++以后

i的值变成了1

这时候再去执行内层循环

那么这里的if条件就不再成立了

从而会连续的循环打印出十个*号

完成换行后再次更新i

i的值变成2

此时i%2==0条件又会成立

如此循环下去 直到i的值等于5为止

可见它的运行效果就是将第一行 第三行显示为空行

而第二 第四行打印出十个*号

下面我们再来思考一个问题

如果我们把break相关语句移到外层循环的位置

程序的运行会发生什么变化呢

由于i的初始值是0

当它执行到循环体的时候

满足了这里的条件i%2==0

那么将会执行这里的break语句

而这时候 break所属的循环语句块呢是外层循环

它将直接跳出外层循环

结束整个循环语句

因此 你在控制台上将看不到任何的输出信息

这就是大家需要在多重循环当中 特别注意continue和break的用法

下面为了巩固我们今天学过的知识

我们来做一个简单的打印三角形的练习

这里要求大家打印出如图所示的三角形星型图形

要完成这个任务 我们首先来观察下它的规律

注意到这是一个由五行构成的三角形

第一行由一个*号构成 第二行由两个*号构成 依次类推

直到第五行 也就是最后一行 由五个*号构成

你会发现每行*号的个数等于当前的行数

有了这个规律我们就可以这样写

首先我们定义一个常量line 来表示所有的行数

然后定义一个外层循环 表示循环的行数

每行我们用一个内层循环来打印*号

这里的*号至少是一个 最多不能超过当前的行数

也就是外层循环变量line的当前值

最后 打印完一行*号 记得要用println进行换行

运行下我们的程序 一个星型三角形就已经做完了

有了这个经验以后

我们要实现一个倒三角形也是非常的方便

这里的外层循环行数 可以保持不变

我们只需要控制内层的*号就可以了

它的值最多等于line

随着行数的逐渐减少

至少要大于等于当前的行数

好了 一个倒三角形也就写好了

当然 这里的做法有很多种

归根结底 你就需要控制好你的行数

控制好你每行的*号数

今天的内容就讲到这里 你学会了吗

好了我们总结一下今天学到的内容 默认的在循环嵌套的环境下

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笔记与讨论

也许你还感兴趣的课程:

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