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 ...
随机推荐
- juqery easyui
私人做程序开发一直有个头疼的问题就是后台管理界面,以前一般都是自己用jquery+ps自己设计的,效果很一般,很不理想. 今天初次使用Jquery EasyUi,简单的做了个布局页面感觉还不错,给大家 ...
- bzoj 3109: [cqoi2013]新数独
#include<cstdio> #include<iostream> using namespace std; ][],li[][],xi[][],a[][],bh[][], ...
- Mutual Training for Wannafly Union #1解题报告
---恢复内容开始--- q神等人组织的vjudge上的多校训练,题目基本上都来自于CF,#1是上周进行的,参加后感觉收获很多,因为上周准备期中比较忙,解题报告现在补上. 比赛地址(兼题目地址) A题 ...
- Rhel6-mpich2 hpc集群配置文档
系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.121 server21.example.com 192.168.12 ...
- Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题
Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题钉子 发表于 2010-5-22 1:42:51问题描述 ...
- The data is said to include information from networks
The data is said to include information from networks as well as from individual computers and smart ...
- 初始化脚本(Os_Init_Optimization.sh)
#!/bin/bash #解压缩startup.tar.gz包 cd /tmp && tar -zxf startup.tar.gz #初始化YUM源 rm -rf /etc/yum. ...
- What is the PPA and How to do with it ?
Part of the appeal of Ubuntu is its six-month release cycle. Every six months a new version of the f ...
- GCD线程间通信
从子线程回到主线程 dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 执 ...
- ashx
一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名.一个httpHandler接受并处理一个http请求,类比于Java中的servlet.类比于在Java中需要 ...