当前课程知识点:高级语言程序设计 >  循环结构程序设计 >  4.5 何时需要用循环的嵌套 >  何时需要用循环的嵌套

返回《高级语言程序设计》慕课在线视频课程列表

何时需要用循环的嵌套在线视频

何时需要用循环的嵌套

下一节:如何提前终止循环和提前结束本次循环

返回《高级语言程序设计》慕课在线视频列表

何时需要用循环的嵌套课程教案、知识点、字幕

大家好

前面学习了三种循环结构的语句

那么其实循环结构里面呢

它还涉及到循环的嵌套

那么循环的嵌套是什么样子呢

什么情况下会用到它呢

那么今天这一节课

我们就和大家一起来学习

什么时候需要用到循环的嵌套

这一节课我们用乘法口诀表

和大家一起来了解循环的嵌套

首先我们把这个乘法口诀表

它按照一个比较简单的形式

也就是一个方形的形式来输出

或者说矩形的形式来输出

那么后面我们再修改这个代码

按照三角形的形状输出

我们都知道乘法口诀表

它有9行

每一行有9列

这个时候就需要使用双重的循环

所谓双重的循环

就是外面有一层循环

内层也有个循环

那么外层的循环控制输出行

内层的循环输出列

是什么意思呢

就是说当我在外层的循环

输出一行的时候

这一行它有9个式子

那么这一行的9个式子

就相当于这1行的9列

所以在外层的输出一行的时候

我们在内层里面要把这一行的9列输出来

那么每1行的9列

这个样子该如何来实现呢

我们可以这样来做

就是我们首先

按一行一行的输出

我们先把外层的for

外层的循环搞清楚

那么在以行为主的这个形式循环输出

就可以写一个外层的循环控制语句

那么在循环控制语句里面

输出某一行的时候

大家都知道这1行有9列

那么在这1行里面的9个式子

输出的时候我们又要做循环

所以在以行为主序的这个外层的循环的时候

这个每1行里面再做这个内层的循环

也就是列循环

所以这个时候我们就用外层的for循环

来嵌套内层的for循环来实现

那么外层的控制

这个行的循环次数由整型变量i来控制

内层的循环次数

也就是控制某一行的这个列数

由整型变量j来控制

下面我们来看一下这个程序

这个程序其实写得非常的简洁

程序里面有一个主函数

在主函数里面

定义了i j两个变量

当然i j是这个for循环里面的控制变量

在循环的嵌套里面

我们写了两层for循环

这两层for循环我们怎么看呢

就是外层的这样一个for循环

变量i从1开始一直加到9

外层for循环

循环9次

所以这个i是表示

我们要做这个循环为主的

以行为主的循环

也就是说i等于1的时候

我们要输出第1行

i等于2的时候

我们要输出第2行

i等于3的时候输出第3行

所以i控制外层循环

我们再看当i等于某一个值

这个时候我们要进内层的for循环

比如说i等于1

那么内层的for循环呢

这个变量j从1开始

一直循环到9才结束

也就是说i等于1的时候

我输出的是第1行的9个式子

那么这第1行的9个式子

都要按照顺序来输出

这第1行的9个式子

怎么样输出呢

是以什么样的形式输出呢

其实我们都知道

乘法口诀表里面每一个式子

就是i乘以j等于一个值

这里的这个i

也就是第一行的每一个式子左边的这个数

i是一个乘数

它表示行号

右边的这个乘数j就表示列号

所以第一行的这个式子

它依次就是1×1=1

1×2=2

1×3=3

这样依次往后排列

到最后一个式子是1×9=9

按照这一个道理

里面的for循环执行完了

就要跳到外面的for循环里面

当外层的for循环i值等于2

就要输出第二行的式子

那么这第二行呢

它也是九个式子

第二行的式子依次是2×1=2

2×2=4

2×3=6

2×4=8等等

一直往后排列

排到最后一个式子是2×9=18

所以大家按照这样一种思路来看

我们这个嵌套的for循环

是可以把这样一个方形的

或者说这个矩形的乘法口诀表输出的

那么这个时候还要注意

在内层循环输出的时候

要用斜杠T水平制表符

来控制每个式子之间的间隔

因为式子与式子之间有一个间隔对齐

然后在每一行输出结束

我们要加一个换行符号

也就是一个\n

保证一行输出完了就要换行

所以呢这个printf \n

是这个外层的for循环里面的

并且它放在内层的for循环的外面

也就是说每一行输出完毕了就要换行

那么下一行呢

也是这个九个表达式

那么再循环输出再下一行

这个九个表达式

这就是我们看到一个矩形的九九乘法口诀表

那么大家知道

事实上乘法口诀表

它就是一个三角形的样式

对吧

所以现在我们这个三角形的乘法口诀表

怎么样实现呢

其实这个问题我们好解决

我们就把刚才的这个程序进行一些修改

得到我们想要的结果

我们这样来看

如果把它变成一个下三角形的乘法口诀表

那么这个下三角形的乘法口诀表

我们可以看一下每个表达式排列的这个规律

就是每一行输出到最后一个表达式

这个最后的表达式

它的行标和列标都是相同的

你比如第一行输出到最后是1×1=1

那么第二行从第一个表达式开始

输出到最后一个

那么第二行最后一个式子是2×2=4

那第三行输出到最后一个表达式是3×3=9

所以呢我们在这个嵌套的for语句里

一定要注意

就是这个内层的循环

开始的状态和刚才是相同的

但是结束的状态一定要注意

这个表达式右边的这一个元素是j

它一定要控制和i相等

它才能够表示这个内层的循环结束

那么外层的循环

外层的循环因为依然还是输出九行

所以外层的循环还是和前面一样的

所以我们的这个行

每一行的行标i从1一直循环到9

这是外层的循环

内层的for循环要注意

刚才说的内层的for循环这个j的值

从数值1开始

一直要循环到和i相等就结束

所以这个时候

我们可以把内层的for循环的这个j的终结值

改一下就可以了

所以这个程序修改之后

就得到了我们这个运行的这样一个结果

三角形的乘法口诀表

好除了下三角形的乘法口诀表

其实我们还有上三角形的乘法口诀表

那么这个上三角形的乘法口诀表

还是一样的

我们把前面的第一个程序拿过来

把其中的一些代码进行修改

也会得到上三角的口诀表

那么怎么改呢

我们来可以观察一下

还是来观察一下

这个上三角形乘法口诀表

它依然还是9行 对吧

我们按行主序来循环

所以这个外层的for循环

i还是从1开始一直到9

所以每次给i赋一个值

都代表着一行的输出

那么i等于某一个值

这一行怎么输出呢

这个时候我们就要注意到

内层的这个for循环

我们现在将内层的for循环进行修改

来看一下每一行输出的时候

这一行的表达式有什么特点

那么这一行有的行一开始就有表达式

但是有的行一开始没有表达式是空的

所以这个时候

我们要做这个输出水平制表符

水平制表符的个数

我们要控制一下

用j来控制

当j的初值等于1

j小于i的时候

输出水平制表符

也就是说一定要让j是小于i的情况下

才能够输出水平控制符

如果j大于等于i怎么样呢

j大于等于i的时候我们接下来往后看

这个内层的循环里面

接着写了一个for循环

j的值被i赋值

循环开始

开始输出这个表达式

这些表达式一直输出到什么时候

一直输出到这个表达式右边的这个乘数j等于9的时候

才把这一行的表达式输出完毕

所以输出一行之后

紧接着就要换行

嵌套for循环执行完

我们就得到这个上三角形的乘法口诀表

好这是我们通过一个乘法口诀表

这个矩形的乘法口诀表

下三角形的 上三角形的乘法口诀表

来给大家介绍了这样一个循环的嵌套

这一节课就到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

何时需要用循环的嵌套笔记与讨论

也许你还感兴趣的课程:

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