2.7 循环结构-do-while语句
来源:互联网 发布:c语言如何了解函数库 编辑:程序博客网 时间:2024/05/07 00:56
基本格式
“do-while语句”也称为“直到循环”。语句格式为:do 循环体语句 while(表达式);
其中:
- 表达式——是C++中任一合法表达式,包括逗号表达式;其值是逻辑型,即1或0。
- 循环体语句——可以是单一语句,也可以是复合语句。
执行流程
图2.6 do-while语句的执行流程
do-while语句的执行流程示意图如左图所示,描述如下:
(1) 执行一次循环体语句;
(2) 计算表达式的值,若表达式的值为真(或非0),则重复上述过程;
(3) 直到表达式的值为假(或为0)时,结束循环。
应用举例
【例2.12】用迭代法求x=a1/2的近似值,要求前后两个迭代根之差小于10-5。求平方根的迭代公式为:xn+1 = (xn+a/xn)/2。(查看动画演示)#include<iostream>
#include<cmath>
using namespace std;
int main(){
float x0,x1,a;
cout<<"输入一个正数:"<<endl;
cin>>a;
if(a<0) cout<<a<<"不能开平方!"<<endl;
else { //有实数解的情况
x1=a/2; //x1用作保存结果
do {
x0=x1;
x1=(x0+a/x0)/2;
} while (fabs(x1-x0)>=1e-5);
cout<< a<<"的平方根为:"<<x1<<endl;
}
return 0;
}
【例2.13】输入一段文本,统计文本的行数、单词数及字符数。假定单词之间以空格或跳格或换行符间隔,假定文本没有空行。(查看动画演示)
#include<iostream>
using namespace std;
int main(){
char ch;
int nline=0,nword=0,nch=0;
int isword=0;
cout<<"输入一段文本(无空行):"<<endl;
do{
ch=cin.get();
if(ch=='\n') nline++; //遇换行符行数+1
if(ch!=' '&& ch!='\t'&&ch!='\n'&&ch!=EOF){ //读到非间隔符
if(!isword) nword++; //在单词的起始处给单词数+1
nch++; //字符数加+1
isword=1;
}
else isword=0; //读到间隔符
} while(ch!=EOF); //读到文本结束符为止
cout<<"行数:"<<nline<<endl;
cout<<"单词数:"<<nword<<endl;
cout<<"字符数:"<<nch<<endl;
return 0;
}
重要提示
- do-while语句在绝大多数情况下都能代替while语句。
- while语句与do-while语句的区别是:do-while语句无论条件表达式的值是真是假,循环体都将至少执行一次;而若条件表达式的初值为假,则while语句循环体一次也不会执行。
0 0
- 2.7 循环结构-do-while语句
- 循环结构(do...while语句)
- 语句-循环结构while和do while
- 循环结构语句---for,while,do-while
- 利用循环结构求和do while语句
- switch 语句还有 循环结构 while 、do-while、 for
- do while 循环语句
- do.while循环语句
- while,do while循环结构
- 循环结构:do - while循环
- PHP学习笔记——循环结构do...while语句
- 027.Do While 循环语句
- 027.Do While 循环语句
- C语言中循环结构语句 for循环及while,do--while 的使用
- Java循环结构while 、do while、for循环语句学习小结
- 循环语句小结 for while do-while
- JavaScript while, do while for 循环语句
- 循环语句(for;while;do -while)
- 2.5 分支结构-switch语句
- 算法学习与代码实现5——堆排序
- 2.6 循环结构-while语句
- java File类
- 技术博客的重要性
- 2.7 循环结构-do-while语句
- 排序算法
- 2.8 循环结构-for语句
- 快排思想找第k小的数
- 侵入式菜单
- java学习笔记之class类实例获取方法
- js学习笔记(面向对象)
- hdu1238(Substrings)
- PHP手工注入