C++ do-while语句详解
来源:互联网 发布:关系数据库中关系是指 编辑:程序博客网 时间:2024/06/06 01:54
基本格式
“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语句循环体一次也不会执行。
- C++ do-while语句详解
- C++ do-while语句详解
- C语言do while语句
- PHP循环语句详解 while, for, foreach, do while
- PHP循环语句详解 while, for, foreach, do while
- Object-C,循环语句for,while,do-while
- C-011.while和do...while 循环语句
- 【c语言】流程控制语句(while,do..while)
- while与do while语句
- do-while语句
- do-while语句学习
- do while 循环语句
- do-while语句
- do-while语句
- do-while语句
- 015 do-while语句
- do while 语句
- do-while语句
- 求{1,2,3}的子集————回溯法(递归与非递归)
- Android 图文垂直跑马灯
- MinGw32+vc2008 编译 ffmpeg-3.3.2
- 【PHP基础知识】——Cookie知识详解与使用
- 字符串使用、函数指针、内存分配
- C++ do-while语句详解
- 使用Sinopia搭建私有npm仓库不能下载带有@符号的包
- Redis的持久化-RDB和AOF
- 第一篇: 词向量之Word2vector原理浅析
- Oracle 12c 分片(Sharding)技术
- 触发消息的函数
- 数据库SQL实战
- Ubuntu 12.04 LTS 查看网关地址方法汇总
- 从“0”开始搭建个人博客(2)——Hexo的配置