当前课程知识点:高级语言程序设计 > 循环结构程序设计 > 4.3 用do-while语句实现循环 > 用do-while语句实现循环
同学们好
今天我们一起来学习do-while循环语句
这一节呢
我们首先要了解do-while语句的语法
然后通过举例子
用do-while语句来解决一个问题
最后呢我们来比较
while语句和do-while语句的区别
我们先来看do-while语句的一般形式
大家可以看到
这个的形式是这样的
它先是do
下面是大括号语句
后面紧跟的while
后面是括号 表达式 分号
注意这个圆括号后面的分号
它表示语句的结束
这个分号是不能缺少的
那么在这个形式里面
这个格式里面
这里的语句是循环体
表达式是循环条件
我们可以由流程图可以看到
do-while语句执行的过程呢
它和while语句不一样
它是先执行循环体语句
然后再判断这个表达式
如果表达式为真
那么继续执行循环体语句
那么再判断表达式
这样不停的循环下去
当然在这个循环的过程中
这个表达式肯定都是为真的
那么直到某一次
判断表达式为假
就跳出循环体
所以do-while语句的特点是
先无条件地执行循环体
然后再判断循环条件是否成立
下面我们来举一个例子
通过这个例子
我们来看一看
while语句和do while语句有什么区别
这个例子是这样的
它要计算从某一个小于10的数
到10的这个等差数列的和
我们先用while语句来实现
那么这里呢
我们可以设加数为变量i
和为变量sum
因为这里也是反复的执行
加操作嘛
给它们赋初值
sum初值为0
i的初值是一个小于0的数
当然这个i的初值要保证是一个小于10数
我们要从键盘输入
那么while后面的循环条件
肯定是i小于等于10
也就是i一定要是小于等于10的情况下
我们才能保证做加法运算
循环体里面是什么呢
是sum被sum加i赋值
然后i自身加1
当这个while循环不停的执行下去
等循环结束的时候
输出sum的值也就是要求的和
假如我在程序运行过程中
输入一个5
i的值为5
那么这个while循环条件
第一次判断肯定是为真的
因为5小于等于10
那么进循环体做加运算
在加运算结束之后
也就是循环执行完了
求的和就是45
如果我再一次运行这个程序
当我输入11
那么i的值为11
这个循环条件肯定不成立
所以循环体也不用执行
那么这个时候直接跳出循环
输出sum的值
那么这个时候sum的值
应该是它的初始值
也就是0
结果为0
所以这是while语句来实现的这样一个循环过程
如果这个问题我们用现在要学的
这个do-while循环语句来实现
我们大家也来看一下
其实我们可以
把刚才的这样一个程序中的while语句
用do-while语句来代替
很显然这个do-while语句
它是先执行循环体
再判断条件
所以呢
当我输入5的时候
我还是输入5
这个程序执行的结果
sum的值还是45
再一次运行这个程序
当我输入11的时候
这个i的值为11
很显然这个时候注意
很显然do-while循环
它先执行循环体
然后再判断条件
所以这里先做加运算
加完了之后
再判断i小于等于10的条件
那么这个时候大家注意了
执行的循环体判断条件
i的值已经变为12了
12大于10
所以这个时候跳出循环
得到的结果就sum的值为11
所以我们学习了do-while语句之后
我们可以很清楚的能够判断
其实while循环和do-while循环
虽然他们都是实现循环控制
但是他们是有区别的
那么它们唯一的区别
就是当while后面括号里的表达式
也就这个循环条件
第一次判断为假的时候
while循环执行0次
do-while循环要执行1次
但是当while后面括号里的表达式
第一次判断为真
那么这两种循环执行的过程是一样的
得到的结果也是一样的
今天的这一节课就到这里
谢谢大家
-1.1 计算机程序和计算机语言
-1.2 C程序的构成
--C程序的构成
-1.3 C语言编辑、编译、运行(VC++2010学习版)
-练习题
-2.1 变量的定义和使用
--变量的定义和使用
-2.2 数据类型
--数据类型简介
--整型数据
--实型数据
-2.3 格式输出和格式输入
-2.4 运算符和表达式
--运算符和表达式
-2.5 结构化程序设计入门
-练习题
-3.1 为什么要用选择结构解决问题
-3.2 如何正确表示选择结构中的条件
-3.3 用if语句及if语句嵌套实现选择结构
-3.4 用switch语句实现选择结构
-练习
-4.1 循环的引入
-4.1 循环的引入--作业
-4.2 用while语句实现循环
-4.3 用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 共用体类型和枚举类型
--共用体和枚举类型
-习题--作业
-动态内存分配--习题
-习题--作业