目录
🍁引言
🍁一、语句格式
🚀格式1
🚀格式2
🍁二、语句执行过程
🍁三、实例
🚀【例1】
🚀【例2】
🚀【例3】
🍁总结
🍁备注
🚀欢迎互三👉:程序猿方梓燚 💎💎
🚀所属专栏:C++教程💎🚀关注博主,后期持续更新系列文章
🚀如果有错误感谢请大家批评指出,及时修改
🚀感谢大家点赞👍收藏⭐评论✍
🍁引言
在编程的世界里,我们不断探索着各种控制流程的方式,以实现更灵活、高效和准确的程序逻辑。在前两节中,我们已经领略了诸如 for 循环和 while 循环的魅力。而现在,即将迎来第三节——do-while 语句,它如同一位特立独行的勇士,为我们的编程之旅增添了新的色彩和可能性。
do-while 语句有着独特的执行顺序和应用场景,它先执行循环体,然后再判断条件,这一特性使得在某些特定情况下,它成为解决问题的不二之选。通过深入了解 do-while 语句,我们将进一步拓展编程思维,提升解决问题的能力,为编写更复杂、更强大的程序奠定坚实的基础。
让我们一同开启这扇新的编程之门,探索 do-while 语句背后的奥秘与魅力。
🍁一、语句格式
🚀格式1
说明:语句1是do-while的循环体。
🚀格式2
说明:循环体部分由多个语句构成,应由一对花括号括起来,构成一个语句块的形式。
🍁二、语句执行过程
(1)执行一遍循环体。
(2)求出作为循环条件的“条件表达式”的值,若为逻辑值真则自动转向第(1)步,否则结束do循环的执行过程,继续执行其后面的语句。 在do语句的循环体中也可以使用break语句,用它来非正常结束循环的执行。
🍁三、实例
🚀【例1】
对于求两个正整数m,n的最大公约数可以用do—while实现。 代码如下,请完善:
#include <iostream> using namespace std; int main () {int m,n,r;cin>>m>>n; do //辗转相除法{r =m % n;m=____;n=_____;}while ( _______ );cout<<"the greatest common divisor is:"<<______; return 0; }
以下是完善后的代码:
#include <iostream> using namespace std;int main () {int m, n, r;cin>>m>>n; do //辗转相除法{r = m % n;m = n;n = r;}while (r!= 0);cout<<"the greatest common divisor is:"<<m; return 0; }
🚀【例2】
求1992个1992的乘积的末两位数是多少?
【分析】积的个位与十位数只与被乘数与乘数的个位与十位数字有关,所以本题相当于求1992个92相乘,而且本次的乘积是下一次相乘的被乘数,因此也只需取末两位参与运算就可以了。
【示例代码】
#include<iostream> using namespace std; int main() {int a=1,t=0;do{++t;a=(a*92)%100;}while (t!=1992);cout<<a<<endl; return 0; }
🚀【例3】
校体操队到操场集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分别按每行排4,5,6人,都多出1人;当排成每行7人时,正好不多。求校体操队至少多少人?
【分析】
①设校体操队为x人,根据题意x应是7的倍数,因此x的初值为7,以后用x+=7)改变x值;
②为了控制循环, 用逻辑变量yes为真(true) 使循环结束;
③如果诸条件中有一个不满足, yes 的值就会为假(false),就继续循环。
【示例代码】
#include<iostream> using namespace std; int main() {int x=0; bool yes;do{yes=true;x+=7;if (x%2!=1) yes=false;if (x%3!=1) yes=false;if (x%4!=1) yes=false;if (x%5!=1) yes=false;if (x%6!=1) yes=false; }while (yes==false); //直到yes的值为真cout<<"All="<<x; return 0; }
程序中对每个x值,都先给yes 赋真值,只有在循环体各句对x进行判断时,都得到“通过”(此处不赋假值)才能保持真值。
🍁总结
有不懂的地方可以si我,和我一起学习C++吧。
🍁备注
还没有下载DEV-C++的小伙伴们可以私我拿到免费安装包