do-while语句
一、语句格式
格式1:
do
语句1;
while (条件表达式);
格式2:
do {
语句1;
语句2;
…
}
while (条件表达式);
语句执行过程:
1、执行一遍循环体。
2、求出作为循环条件的“条件表达式”的值,若为真,则自动转向第1步,否则结束do循环的执行过程,继续执行其后面的语句。
do-while循环的特点是:先执行循环体,后判断布尔表达式。
注意:
1、当条件表达式的值为真时重复循环体,否则结束循环;这一点和pascal语言的repeat语句相反。
2、在do语句的循环体中也可以使用break语句,用它来非正常结束循环的执行。
3、while和do while语句的区别在于:while语句先判断条件是否满足,决定是否执行循环体,若开始条件就不满足,那么循环体一次也不执行;而do while语句是后
判断,不管条件是否满足,首先执行一遍循环体,然后再判断条件是否满足,在do while结构中,循环体至少被执行一次。简单说就是,如果开始循环控制条件为假,
两种循环的执行结果有所不同,do while循环至少执行一次,而while循环却一次都不执行。
例1、求两个自然数m、n的最小公倍数。
方法一:
#include<iostream>
using namespace std;
int main()
{
int m,n,s,i=1;
cin>>m>>n;
do {
s=m*i;i++;
} while (s%n!=0);
cout<<s;
return 0;
}
方法二:
#include<iostream>
using namespace std;
int main()
{
int m,n,j,r;
cin>>m>>n;
j=m*n;
do {
r=m%n;m=n;n=r;
} while (r!=0);
cout<<j/m;
return 0;
}
例2、求1992个1992的乘积的末两位数是多少?
#include<iostream>
using namespace std;
int main()
{
int a=1,t=0;
do {
t++;a=a*92%100;
} while (t<1992);
cout<<a;
return 0;
}
例3、校体操队到操场集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分别按每行排4、5、6人,都多出1人;当排成每行7人时,正好不多。求校体操队至少多少人?
#include<iostream>
using namespace std;
int main()
{
int x=0;
bool y;
do {
y=true;
x+=7;
if (x%2!=1) y=false;
if (x%3!=1) y=false;
if (x%4!=1) y=false;
if (x%5!=1) y=false;
if (x%6!=1) y=false;
} while (y==false);
cout<<x;
return 0;
}
二、作业
1、zerojudge:a518
2、输出1至100之间所有的素数。
3、输出2至1000之间所有的完数,完数是指此数的所有因子之和等于此数,如:28=1+2+4+7+14。
do-while语句的更多相关文章
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- whdxlib
1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...
- 【.net 深呼吸】细说CodeDom(2):表达式、语句
在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...
- 将表里的数据批量生成INSERT语句的存储过程 增强版
将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...
- mysql学习之 sql语句的技巧及优化
一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...
- MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- MyBatis源码分析(二)语句处理器
StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...
- 一条Sql语句分组排序并且限制显示的数据条数
如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...
随机推荐
- css伪元素选择器(伪对象选择器)checked + 伪元素练习
伪对象也叫伪元素,在过去,伪类和伪元素都被书写成前面只加一个冒号,实际上应该是: :weilei ::伪元素 而现在我们为了兼容旧的书写方式,用一个冒号引导伪类也是能被解析的. 伪类一般反应无法在CS ...
- C++编程优化心得(持续更新)
1. 对齐原则.比如64位总线,每次寻址读取8B.编程时注意变量地址,尽量消耗总线最少的寻址次数.堆内存申请时,系统严格按照对齐原则分配,故而使用时候也尽量不要跨寻址边界. 2. 需要的时候,可为了效 ...
- offset client scroll
offsetHeight offsetWidth返回为元素在屏幕上显示大小,不包括外边距 clientHeight clientWidht 和上面两个类似,不同的是,这两个不包括外边距高度. < ...
- CSU 1325 莫比乌斯反演
题目大意: 一.有多少个有序数对(x,y)满足1<=x<=A,1<=y<=B,并且gcd(x,y)为p的一个约数: 二.有多少个有序数对(x,y)满足1<=x<=A ...
- Android - 动态调整ListView高度
布局中,如果设计ListView的高度为包裹内容,那么ListView的高度是随着它的子条目的数量的变化而改变的, 这就可能会导致ListView下面的一些控件的位置也会随着ListView的高度的变 ...
- android 分享或者调用系统或者其他app时 应注意! startActivityForResult() 使用
//判断是否有相应的Activity来接受intentPackageManager packageManager = getPackageManager();List<ResolveInfo&g ...
- mybatis sql in 查询
mybatis官方学习文档:http://www.mybatis.org/core/getting-started.html 本文转自:http://www.blogjava.net/xmatthew ...
- PHP fastcgi模式大文件上传500错误
最近在项目中中上传图片时,大约有300多K,结果报了个服务器错误,以前从未遇到过,错误的内容如下: mod_fcgid: www.111cn.net HTTP request length 13229 ...
- IP地址的分类——a,b,c 类是如何划分的
现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0.地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址. IP地址类型 最初设计互联网络时,为了便 ...
- block捕获自动变量和对象
一.捕获自动变量值 首先看一个经典block面试题: int val = 10; void (^blk)(void) = ^{printf("val=%d\n",val);}; v ...