首页 理论教育 C++语言中学版-循环语句

C++语言中学版-循环语句

时间:2023-08-13 理论教育 版权反馈
【摘要】:表5-2do-while循环语句执行过程表达式及语句说明同while循环。执行过程:表5-3循环过程4.典型应用do-while最典型的应用就是判断是否继续,比如:语句分析:循环体是由两句组成的语句块,用“{}”括起来;循环条件为answer=='Y'||answer=='y',即如果输入值为Y或者y,则都继续执行循环体。continue只能用在循环语句中,不能单独使用,其语句的作用是跳出本次循环,直接进入下一次循环条件的判断。

C++语言中学版-循环语句

1.语句格式、流程图及执行过程

do-while循环语句格式、流程图及执行过程如表5-2所列。

表5-2 do-while循环语句执行过程

表达式及语句说明同while循环。

2.正常运行三要素

通过以上分析可以得知,循环能正常运行要具有如下三要素:

(1)为循环变量赋初值(初值)。

(2)设置循环条件,用于判断循环是否执行(判断)。

(3)改变循环变量(更新)。

3.常用形式

语句分析:

i为循环变量,初值被赋为1;循环体由cout<<i<<endl;和i++;组成的语句块构成,所以用“{}”括起来;循环条件为i<3,即如果i<3成立则继续执行循环体。

执行过程:(见表5-3)

表5-3 循环过程

4.典型应用

do-while最典型的应用就是判断是否继续,比如:

语句分析:

循环体是由两句组成的语句块,用“{}”括起来;循环条件为answer=='Y'||answer=='y',即如果输入值为Y或者y,则都继续执行循环体。

执行过程(如图5-1所示):

为变量answer赋初值n,执行循环体,即输出提示信息并将输入值赋给变量answer,这是第一次循环;判断条件,看answer的值是否为真,若上次输入为Y或y,则继续输出提示信息并等待输入,若为其他值就直接退出循环,整个循环结束。

图5-1  “典型应用”流程图

例5-5 连续输入多个数据,计算它们的乘积,在输入0时结束。

思路分析:

(1)根据题意可知,这是一个重复输入数据并将输入的数据执行“乘法”运算的过程,可以把输入的数据作为循环变量。重复做乘法计算的过程称为“累乘”,累乘可以用一个表示积的变量不断乘以每一项的乘数的方法来实现,语句为s=s∗n,即s∗=n,这里表示积的变量s在声明时应赋初值为1。把重复部分写入循环体即输入数据和累乘。

(2)根据题意,输入0时结束,所以循环条件为不等于0时执行循环,即while(!=0)。(www.xing528.com)

程序清单:

例5-6 请输入5个数码商品的价格,统计商品价格低于600的商品数量。

思路分析:

(1)根据题意,这是一个重复输入数据并不断与600进行比较的过程,用循环变量i计算输入的次数,将i初值赋为0;循环条件为输入的次数不超过5次,即i<5,循环体为输入数据和判断比较。

(2)判断比较过程为:若商品价格大于等于600,则跳过,不进行计数,跳过用continue语句实现,小于600时计数器加1,用计数变量count计算小于600的商品个数。

(3)continue只能用在循环语句中,不能单独使用,其语句的作用是跳出本次循环,直接进入下一次循环条件的判断。语法格式为:continue;。

程序清单:

例5-7 求自然数a、b的最小公倍数

思路分析:

(1)两个数的公倍数就是这个数既是a的倍数也是b的倍数,是它俩的公共倍数,而且是它俩公共倍数里面最小的数。

(2)将a的倍数以从小到大的顺序排序,看是否能被b整除,遇到的第一个能被b整除的倍数就是这两个数的最小公倍数。如果不能,则继续向下寻找。

程序清单:

例5-8 数字反转(NOIP2011普及组试题)。

给定一个整数,将该数各位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,例如输入-380,反转后得到的新数为-83。样例如表5-4所列。

输入:一行,一个整数n(-1 000 000 000<=n<=1 000 000 000)。

输出:一行,一个整数,表示反转后的新数。

表5-4 样例

思路分析:

(1)数字反转,就是把一个整数中各位的数字从低位依次取出,然后按照取出的顺序依次放置在新数由高到低的位次上,达到反转的目的。但是如果原数个位上的数是0,则反转时0不在最高位输出。

(2)取各位数字的方法:先用取余数的方法取出个位数,然后将原来的整数缩小10倍,变成新的数,再对新数取个位数,这时取出的个位数是原数十位上的数字,继续对新数缩小10倍,再对缩小10倍后的数取个位数,这时取出的个位数是原始数的百位上的数字。以此类推,用同样的方法再取出原数的千位、万位等更高位上的数字。

(3)组成新整数的方法:先声明一个表示反转后整数的变量s,赋初值为0,取出第一个数字(个位上的数)后与s相加,再取出一个(十位上的数)与s相加,但这时的相加不是两个数字做常规意义的“加法”,而是后取出的数字放个位,上一次取出的数“升”到十位上,“升”到十位的方法就是把这个数扩大10倍,即s乘以10。再取出一个,又把新取出的这个数放在个位上,前面的两位都分别上“升”一位,成为百位和十位上的数字,那就在上次基础上再扩大10,即继续将s乘以10。以此类推得到反转以后的数字。

(4)当输入负数时要使用绝对值函数,所以要将头文件cmath包含进来。

程序清单:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈