12、do-while语句

发布网友 发布时间:2024-10-10 22:56

我来回答

1个回答

热心网友 时间:2024-10-11 00:54

对于给定的自然数n,求使1+2+3+4+5+...i≥n成立的最小i值。

运行结果:

do-while语句是C++语言中用于解决至少执行一次重复操作的循环语句。

定义格式:

格式1:

do

语句;

while(条件表达式);

格式2:

do

{

语句1;

语句2;

......

}

while(条件表达式);

功能:

重复执行循环体,直到条件表达式的值为0。与while循环相比,do-while循环是先执行循环体,后判断条件表达式的当型循环。

do-while循环语句的执行过程再和while执行过程做个对比:

示例4.17:

比较下面程序,并写出它们的运行结果:

运行结果:

注意哦:

do-while语句是在执行循环体之后检查条件表达式的值,所以至少要执行一次循环体。

而,while语句是在进入循环体之前,就检查条件表达式的值,于是可能造成while语句的循环体依次也不被执行。

再看一遍流程图,琢磨下上面这段话,更清晰~

思考:如果希望使用do-while语句和while语句解决相同的循环问题,你能说出一般规律么?

示例4.18:

比较下面程序,并写出它们的运行结果:

猜测:12345

运行结果:

猜测:23456

运行结果:

注意哦:

在do-while语句的条件一样的情况下,循环体中语句的不同顺序,也将影响执行结果。

上面4.18-1和2的区别是一个先输出再自增,一个先自增再输出

示例4.19:

写出下列程序的运行结果:

猜测:应该一直输出1吧。。。因为i=1,一直是≤5的,就是死循环了。

运行结果:

注意哦:

为了使重复能终止,循环体中一定要有影响条件表达式值的操作,否则该循环是一个死循环。

应用:

示例4.20:

运行结果:

注意哦:

srand()是随机种子函数,rand()是产生随机数函数。

实验:

修改do-while语句的条件,检验程序的正确性:

运行结果:

修改这个条件,不管做对做错都直接退出循环,只会形成一次结果。

!n==x+y 和 n!=x+y 区别很大

前者 : 非的优先级仅次于括号,是第二高的,在这里除非n=0,否则!n就是假的

后者是判断n是否等于x+y

示例4.21:

运行结果:

示例4.22:

十进制转二进制,即一个数字或商非0时,反复除以2的操作。

运行结果:

实验:

在程序上做哪些修改,可以输出一个十进制整数对应的二进制数形式?

作业:1、读程序写结果:

分别输入:4 0

猜测结果:

001 0

运行结果:

分别输入:100 79 2

猜测结果:

50 0 0

运行结果:

哦哦,79 确实是1,想错了

猜测结果:

6

运行结果:

做错了,一起来看看每次循环都是怎样的吧:

2.

运行结果:

啊,这道题我审题审错了,是问经过了多少路程,不是弹了多少次。。。

不对,数据类型不能是整数,得改下:

3.

运行结果:

错了错了,负数的话只有一个负号在前面,修改下:

4.

输入样例:

7

输出样例:

1/4

这题感觉就是数学题啊。。。

先找到第n项所处的斜线,也就是第几斜线。

while (sum

接下来,注意观察,以奇数行为例:奇数行分母递增,分子递减(偶数行反之),那么就是要找到第n项所在这一行的分子分母就OK了。

sum把第i行都加了,sum-n就是i行末至第n项中间有几个数,分子在此基础上+1,也就是sum-n+1,分母分子之和为i+1,所以分母为i+1-(sum-n+1)--->i-(sum-n);

运行结果:

---------

好久没写了,看大家默默收藏,还是被激励到了,这周开始每天再写一点点吧~

也欢迎讨论呀~

热心网友 时间:2024-10-11 00:52

对于给定的自然数n,求使1+2+3+4+5+...i≥n成立的最小i值。

运行结果:

do-while语句是C++语言中用于解决至少执行一次重复操作的循环语句。

定义格式:

格式1:

do

语句;

while(条件表达式);

格式2:

do

{

语句1;

语句2;

......

}

while(条件表达式);

功能:

重复执行循环体,直到条件表达式的值为0。与while循环相比,do-while循环是先执行循环体,后判断条件表达式的当型循环。

do-while循环语句的执行过程再和while执行过程做个对比:

示例4.17:

比较下面程序,并写出它们的运行结果:

运行结果:

注意哦:

do-while语句是在执行循环体之后检查条件表达式的值,所以至少要执行一次循环体。

而,while语句是在进入循环体之前,就检查条件表达式的值,于是可能造成while语句的循环体依次也不被执行。

再看一遍流程图,琢磨下上面这段话,更清晰~

思考:如果希望使用do-while语句和while语句解决相同的循环问题,你能说出一般规律么?

示例4.18:

比较下面程序,并写出它们的运行结果:

猜测:12345

运行结果:

猜测:23456

运行结果:

注意哦:

在do-while语句的条件一样的情况下,循环体中语句的不同顺序,也将影响执行结果。

上面4.18-1和2的区别是一个先输出再自增,一个先自增再输出

示例4.19:

写出下列程序的运行结果:

猜测:应该一直输出1吧。。。因为i=1,一直是≤5的,就是死循环了。

运行结果:

注意哦:

为了使重复能终止,循环体中一定要有影响条件表达式值的操作,否则该循环是一个死循环。

应用:

示例4.20:

运行结果:

注意哦:

srand()是随机种子函数,rand()是产生随机数函数。

实验:

修改do-while语句的条件,检验程序的正确性:

运行结果:

修改这个条件,不管做对做错都直接退出循环,只会形成一次结果。

!n==x+y 和 n!=x+y 区别很大

前者 : 非的优先级仅次于括号,是第二高的,在这里除非n=0,否则!n就是假的

后者是判断n是否等于x+y

示例4.21:

运行结果:

示例4.22:

十进制转二进制,即一个数字或商非0时,反复除以2的操作。

运行结果:

实验:

在程序上做哪些修改,可以输出一个十进制整数对应的二进制数形式?

作业:1、读程序写结果:

分别输入:4 0

猜测结果:

001 0

运行结果:

分别输入:100 79 2

猜测结果:

50 0 0

运行结果:

哦哦,79 确实是1,想错了

猜测结果:

6

运行结果:

做错了,一起来看看每次循环都是怎样的吧:

2.

运行结果:

啊,这道题我审题审错了,是问经过了多少路程,不是弹了多少次。。。

不对,数据类型不能是整数,得改下:

3.

运行结果:

错了错了,负数的话只有一个负号在前面,修改下:

4.

输入样例:

7

输出样例:

1/4

这题感觉就是数学题啊。。。

先找到第n项所处的斜线,也就是第几斜线。

while (sum

接下来,注意观察,以奇数行为例:奇数行分母递增,分子递减(偶数行反之),那么就是要找到第n项所在这一行的分子分母就OK了。

sum把第i行都加了,sum-n就是i行末至第n项中间有几个数,分子在此基础上+1,也就是sum-n+1,分母分子之和为i+1,所以分母为i+1-(sum-n+1)--->i-(sum-n);

运行结果:

---------

好久没写了,看大家默默收藏,还是被激励到了,这周开始每天再写一点点吧~

也欢迎讨论呀~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com