当前课程知识点:C语言程序设计(上) >  循环结构的程序设计(一) >  4.3 已知循环次数用for语句 >  4.3.1--用for语句控制循环次数

返回《C语言程序设计(上)》慕课在线视频课程列表

4.3.1--用for语句控制循环次数在线视频

4.3.1--用for语句控制循环次数

下一节:4.3.2--循环的应用-求和

返回《C语言程序设计(上)》慕课在线视频列表

4.3.1--用for语句控制循环次数课程教案、知识点、字幕

大家好 我们下面再来看

c里边提供的

第三种 这个执行

一个构成循环的这样的语句for

用for语句来控制循环的次数

构建循环 这一句的格式是for 我们看

有一个括弧 括弧里边有三部分

初值表达式

条件表达式

增量表达式

后边是循环体

那我们在这里边

这三个表达式里边

是什么关系 程序执行起来

执行的这个for语句里边

实际上在做哪些工作呢

我们把这个for语句展开来大家看一下

初值表达式

就是执行的for的时候

你第一件事情碰到的是

这个初值表达式

那就是说循环从哪里开始

然后呢

下来了 是条件表达式

条件表达式一定是先计算

计算这的这个条件是真的还是假的

如果是真的 条件成立

我们就执行这个循环体

循环体执行完了

然后在哪里做呢

循环的出口处

做第三个表达式 增量表达式

下一步

你准备下一步 就增量一次

这个增量 就是我们平常说的

循环的不长

这个不长

跟我们前边讨论过的

比如说我们求阶乘的时候

说n--

那增量是什么呢 -1

那我们求 说

学生的平均分的时候

计数的时候说n++

那增量是什么呢 +1

那我们还可以说这个增量是

每隔五个数 走一步

就我只算1 5 10这样子的

增量 是一个Δ

往前每步走多少

那 增量算完了回来问

增量处一定改变的是什么呢

是你条件里边的循环变量

增量处一定改变的是

条件里边的循环变量

那回过头来再问

你改变完了以后 这个条件还成立吗

如果成立 再做再改变

做循环体 改变循环变量

回来问 然后呢

不停地在做

执行循环体

改变循环控制变量

那循环控制变量

在增量表达式这得到了改变

直到什么呢

这个条件不成立为止 跳出这个循环

那大家看 for语句

用for的这种形式

实现了

循环 构建循环里边的全部的控制

从哪里开始

执行到哪里结束

执行到哪里结束是在

在哪呢 是在增量表达式那

然后呢 在条件这去判断

条件这一定有一个循环控制变量

和终值的一个比较

通过这一个for语句

我们实现了什么呢

循环的初始条件

循环的控制条件

循环体以及增量

那这样的 在程序里边我们看到的是

这个for实际上等价于

比如说我们用

while去判断的时候

while那么这个for等价于

我们用while做的 while 条件

然后呢 是你的循环体

然后是

这个表达式3就是我们增量的那个部分

那我们while呢

判断的时候 是条件在这儿

并没有增量

是执行了这个循环体以后

我们会在这加一个

比如说n++ n--这样的东西

然后 让它增量

让它人为的给一句话让他增量

然后再回来判断

而for 实际上

把这件事情都在这一个句子里边完成了

那我们对for这块做一点点讨论

就说 如果是说

我们循环从哪里开始

这块可不可以省了呢

如果我再进入for之前

我已经把初始条件有了

那我这个表达式1就可以没有了

这是可以省的

所以 我们这块

看for 第一个for

前面的 第一个表达式没有了

只有条件表达式和增量

而我们看第二个for这块

是说 初始值有了

条件有了 增量没有了

增量没有可以吗

可以 我在循环体里边这

搁一n++

但是通常呢

如果是这样的话

我们肯定会把它放在for一起

但是你要放在这也无妨

所以呢 我们讨论这几点是说

for的什么东西可以省

什么东西不可以省

初值是可以省的

是因为你在进入for之前给它

已经有初值了 循环从哪里开始是确定的

你的增量是可以省的

是因为你的循环体里边

一定有一个地方在改变了

这个循环控制变量的

通常来说 条件这块

是不省的 为什么不省呢

条件如果省了 大家想想

程序会是一个什么样的状况呢

我就不判断说 我做还是不做

我就周而复始的做

周而复始的做

这就我们通常说的死循环

那么死循环的情况

是错的吗

当然不是错的

那我有时候我就要死循环

比如说我们的手机一打开

实际上呢

你很多功能就是已经进入了死循环

它不断地获取一些信息

但是通常我们要解决问题的时候呢

是不需要死循环的

我一定要让这循环有出口

那这时候

这个条件通常是不缺省的

如果条件构建不好

或者是你丢掉了

构建

构造出来的程序呢

除了死循环 我们会要

强制的把它终断

我们去看一下这个程序

这样 我们把它复制下来

把它搁在这个环境里边

现在这样下来直接能运行吗

我们看一下 这是有问题

看哪里有问题呢

一看这有点不顺眼

好了 我们把它改过来 %d

必须是

完全的标着你的ASCII码的

那还有哪里不对头呢

我们看一下有没有

通常程序里边 后边要retun0

然后呢

看看还有什么地方不对头呢

如果没有的话 我们在运行一下看看

给输入 我们给n给多大呢 给6个

连在一起 这是个什么数呢

看一下

我们是说

这里边要做的是什么呢

从1

for从1开始

到<=n

也就说<=6

那就说从1到6去循环

每一次循环体里边做什么呢

做累加 这是累加器

累加 加上i的值

那么i每一次增量是1

那在循环体里还做了一件事

每加一次 就把加的结果输出来

每加一次 就把加的结果输出来

那第一次是1

那下来1+ 原来sum里边是0

那就是第一次输入

输出一个1

那第二次 就是1 i增量一次

i在这个位置上 增量

在循环的出口处

增量在这个位置上增量

那增量以后呢

加上2 那第二个数应该是3

可是我们刚才那数连在一起是什么意思呢

我们把它隔开一点 给一个宽度

好 再来看一下

我们还给6

第一个数是1 第二个是3

没有问题 中间隔开

那我们要是给一个比较大的数

n比如说我们给60

不是6 是给60

好了 那这个数后边又连起来了

我们说在循环里边的这个格式

大家是要注意 比如说你要给10

那它到后边可能就不那么连起来了

我们看 还给60

这数就是这样子

那就说每一个过程它是用

用一个 就是

整个域是10那么

那么一个宽度

那这是我们通常大家都要注意的

与这个for没有关系

只是说在for里边为什么这么突出呢

是因为你一不小心就会给了一个很大的数

这个数 就是你的输出呢

就是有批量的数据在输出

那你的屏幕上的一个

摆放的位置 格式

就是要比较讲究

使你看这个数据

可视的效果才会好一些

那我们刚才说

是过程中的所有数据都输出

如果我们不要这样

只要一个最终结果呢

怎么做呢 是不是可以这样

把这个 拿出来

放到循环体的外边

在结束之前

输入就可以了

把它删了 那这时候呢

实际上

你到for循环体里边只有一句话

这些东西就可以不要了

这一句话 就是一个什么呢 求和

就是一个求和

那这for循环里边就可以不要

这个花括弧了

那 从1开始

到<=n

每一次增量是1

增量在哪里做呢

就在这个分号的后边

就来做增量

那个步长走一步

那我们运行一下它来看一下

我们还给刚才的60

看一下说

你输入的是60 这60个数

最后的产生的和1830

好 只有一个数

那中间 前面为什么空格呢

因为你给的域是10 没有变

这样是10 输出

那这块呢 我们看到的是for

在这个里边

初值

赋初值也在它里进行的

判断

这个循环控制变量i也在它里边判断的

那增量就是

改变循环变量的这件事情

也是在这个for语句里完成的

这是我们说的表达式1

这是判断条件 表达式2

这是增量 表达式3

完成了这么一个求和的一个功能

这道题很简单 大家下去可以再看一下

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

4.3.1--用for语句控制循环次数笔记与讨论

也许你还感兴趣的课程:

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