一、语句格式
格式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语句的更多相关文章

  1. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  2. whdxlib

    1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...

  3. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

  4. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  5. mysql学习之 sql语句的技巧及优化

    一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...

  6. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  7. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  8. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  9. MyBatis源码分析(二)语句处理器

    StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...

  10. 一条Sql语句分组排序并且限制显示的数据条数

    如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...

随机推荐

  1. iOS开发UI篇—Quartz2D简单介绍

    iOS开发UI篇—Quartz2D简单介绍 一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\ ...

  2. longitude

    确保有loc:[longitude, latitude]属性给loc增加索引AttractionSchema.index({loc: '2d'});使用geoNeardb.places.find( { ...

  3. Android - 动态调整ListView高度

    布局中,如果设计ListView的高度为包裹内容,那么ListView的高度是随着它的子条目的数量的变化而改变的, 这就可能会导致ListView下面的一些控件的位置也会随着ListView的高度的变 ...

  4. c#读取文本文档实践4-读入到list泛型集合计算后写入新文档

    商品 数量 单价英语 66 100语文 66 80数学 66 100化学 66 40物理 66 60 上面截图是要处理的文本文档内容,目的是计算出总价并加在最后一列. 这一篇与上一篇比较类似,目的相同 ...

  5. 关于jsonp跨域过程中 cookie中的值一直为null的原因

    今天技术交流群里的小伙伴一直被一个问题而困扰,就是写入cookie里面的值 再次进行请求时 cookie 就为空了 他被问题纠结了一天  我也好奇了一天 终于在快下班的时候 他解决掉了 下面我来收一个 ...

  6. tar.gz file installation

    1. tar xzvf  filename.tar.gz 2. cd filename 3. ./configure ./configure --prefix="path" 4. ...

  7. linux命令:head

    1.命令介绍: head用来显示文件的开头的一部分. 2.命令格式: head [选项] 文件 3.命令参数: -q 隐藏文件名 -v 显示文件名 -c<字节> 显示字节数 -n<行 ...

  8. html元素中id和name的区别

    可以说几乎每个做过Web开发的人都问过,到底元素的ID和Name有什么区别阿?为什么有了ID还要有Name呢?! 而同样我们也可以得到最classical的答案:ID就像是一个人的身份证号码,而Nam ...

  9. 第三个Sprint冲刺第二天

    讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:强化答案讲解功能

  10. 关于在win7内集成usb3.0驱动。

    mac air 装了win7但是折腾良久还是无法升级,只能是重新安装. 很蛋疼.bootcamp 老是找不到驱动.只能是手动分区后U盘引导安装. 驱动的下载,直接在Os x 下用bootcamp 下载 ...