当前课程知识点:C语言程序设计(上) >  循环结构的程序设计(一) >  4.1 需要重复执行的程序 >  4.1.2---while实现先判断后循环~1

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

4.1.2---while实现先判断后循环~1在线视频

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

下一节:4.1.3----while循环的应用-录入速度~1

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

4.1.2---while实现先判断后循环~1课程教案、知识点、字幕

大家好 我们接下来讨论

c里边用什么样的方式

来支持构建这样的循环呢

c给了

一共给了三个语句

再多也没有了

一个是while

一个是do while 还有for

就这三个语句

构建所有我们想要的循环

我们先看第一个 while

用while实现的是什么呢

先判断 入口处判断

然后再循环 是这样的结构

while 条件

条件下来呢 是语句组

一组语句

你要做的那个循环体

我们花括弧括起来的这就是

咱们说的循环体

那在对应的 我们的流程里边

大家看 条件 内块的条件

是什么呢 进入循环的入口

判断 下边的循环要做吗

条件满足yes 就做循环体

否则我们就出口

所以 判断的地方是循环的入口

那循环的出口是在哪里呢

出口一定是在no

不满足条件的这个部分

那这个结构

while提供的它特点是什么呢

就是我们刚才已经说到的

在入口处 在这判断

循环的入口处判断

当条件为真的时候就执行这个循环

那么大家是不是看出来

我入口处判断的一个特点是

如果条件不为真

那我这个循环体一次都不执行

这就是while的特点

当这个条件不为真

这个循环体一次都不执行

跳过这一段流程了

比如说我们Σ求和

从1加到 100这件事

我们把程序给出来 大家看

main底下 看这个花括弧

在这呢

循环的入口在哪呢 while

那这时候说 n小于100吗

要小于100

那只能加在99了

我们y去求和 y+n

送到y 然后每一次呢

我们大家看这里边有个n++ 增量

那这个增量是什么呢

改变这个循环的条件

改变条件 为什么呢

是因为我们这个循环里边

是靠n的变化来控制它说

你还比100小吗

如果小

我们就做下边这个花括弧里边的循环体

否则我们就不做

只要小 那么是1小

2小 50小 99也是小

到了100的时候就不小了

所以100加上了吗

100加上了吗

没加上

那现在就说

我们这个循环是从哪里开始的呢

到底是循环了100次

还是循环了99次呢

我们看从哪里开始的

起点很重要

如果我们的起点是从50开始的

那就是从50加到99

我们现在 看n的出值是1

那它是从1开始的加到99

我们看一下这个程序

我们先看一下这个Σ求和的这个程序

刚才 大家说了 我们做的是一个Σ

到while

做多少次呢 100

我们这是

刚才看到的程序是100

那现在

循环控制变量是谁呢 是这个n

n的出值是1

那就是说循环从1开始

循环到哪个 小于100

那就循环到99

那就是1到99

不是循环100次 是99次

那在这循环体里边做什么呢

求和

然后

一定不能忘了得n增量

改变循环控制变量

然后回来再问

现在 目前的n还小于100吗

如果小于就做这件事

跳出这个循环的时候

我们printf的是和

我们还看那个n

那n就是跳出循环的时候

我们的n到底是多少

来看一下

好 是4950

n是100

那是循环了100次吗

我们看一下

n在什么时候变成100了呢

在这变成100了

那 变成100的时候 回过头来问

n小于100吗

不小于了

那现在这个100被加上了吗

没有 这个100没有被加上

所以呢 我们实际上循环加了

加的那个数 最大的数是99

如果我们想把这100加上

或者这样 这是101

或者是说 我们这样写

n<=100吗

这两种都可以

那我们看结果现在已经是不一样了

结果是5050

n这是 此刻的n是101

那101没有被加进去

只加进去了100

这是这个程序

当n<=100的时候

执行这个循环

否者就出来输出这个结果

那么 稍微做一点讨论

如果我们不小心把这个括弧落了

括弧落下了

我们看一下这个循环

应该是什么样的一个情况呢

我们看 进入的这个循环

是两句话

这两句话没有被括弧括起来

应该说

系统自动认为

这个程序自动认为的循环体只有这一句

那我们运行下来的情况 看一下

这个在这闪是什么意思呢

那我只好ctrl+break中断它

什么情况是这样呢

我们来跟踪一下看看

点在这 运行这儿

F5是调试

我们看一下

让它做 现在在哪呢

当前在一个非执行语句

到了下 下来

循环的入口while

现在在运算n<=100吗

是的 进入了这个循环

做加法 然后再看下一步

又到循环入口

然后在做加法 又到循环入口 做加法

大家看到了 问题是什么呢

问题是

你循环控制变量的这个n没有得到改变

循环一直在判断求和

判断求和

循环控制变量没有得到改变

所以永远都是 n是1

1<=100吗 永远都满足这个条件

循环在一个死循环的过程中

这不是我们要的结果

括弧

在运行应该就是正确的

那这一块

想强调循环控制变量

在循环体里边

一定要得到改变

才能够真正的实现结束循环

那我们看

这是咱们前边看到的说

打印同学的是通过了呢

还是没通过让他补考

打印的是ok呢 还是no

在这里边

我们从if入口

这个if是循环的入口吗

当然不是

是说要不要 打印的是ok呢还是打印的no

那我们把这件事情现在说不是做一次

比如说一个班我们30个人 做30次

咱要在这个程序里边加点什么呢

如果我们用while

先判断后执行

来构建这个流程的话

大家想想

应该在哪里来加什么样的语句呢

我们到这个边?环境下

来调试一下这个程序

我们要在哪里插入东西呢

一定是在

scanf的这个之前

我们给while

然后 括弧里边的条件应该是什么呢

现在看我们的循环变量

应该用谁来构建呢

一定会有一个计数器

计的是说你到底是多少人

到达你的中值了吗

如果我们这个计数器用i的话

假如说我们给少一些的人

咱好演示

我只给说 你的小于4个人吗

那我现在用了循环控制变量是i

那这一块一定也要给i一个初值

给i一个初值

当i<4的时候我们来做这件事情

在这件事情里边

第一件要做的就是获取这个成绩

然后判断到底是执行哪一个

那i什么时候得到改变呢

每做完一次

i一定会要做i++

得到改变

那这个循环的入口在这

一定不能忘了

我们在这要加上

刚才咱说的

循环体我们被

到哪呢 到这 这是循环体

大括号

从scanf是循环体要做的第一件事情

获取一个数

然后判断

到底执行哪一块

然后改变循环控制变量

这是从什么地方

我们把整个我们蓝颜色标识的这一块

就是循环体

我们运行一下看一下

i<4应该可以做3次

给一个80分

然后呢 再给一个50分

一定是no

再给一个90分

然后

<4

78分

出来了 <4

那我们循环刚才呢是给了4个数据

我们看 第一次是0

那就说是0的时候我们读了一次数据

那<4 那我可以说0 1 2 3循环做了4次

那什么时候循环只做了3个数呢

如果我们i给的1

那就是1 2 3

那终值一定是4

终值是4 不超过4 那就只能i到3

所以 到底是做3次还是做4次循环

与你的初值相关

三个数结束

为什么呢

是因为我们的循环的起点

i的起点是1 i在这增量

通过这个程序 我们也是看到

while这个循环

是当条件满足

这是一边的条件判断满足的时候

执行这个循环体

执行循环体里边是一句话

还是n多句话 我们这个循环体里边

正好是一个if else的一个选择结构

这是可以的

要根据我们的问题来构建这个循环

大家通过这两个例子

下边 是给了一些练习题

可以用while构建这种当型循环

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.1.2---while实现先判断后循环~1笔记与讨论

也许你还感兴趣的课程:

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