C++基础-while和do…while循环语句

本文介绍了C++中的while和do...while循环语句,包括它们的语法、执行顺序以及两者的区别,并通过水仙花数的打印实例进一步阐述了循环的用法。while循环在条件为真时执行循环体,而do...while循环至少会执行一次,即使条件不满足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

while 语句

do-while 语句

区别

水仙花数打印实例


while 语句

while 语句是循环结构的一种。重复执行语句,直到表达式计算结果为零。

语法

while ( expression )

   Statement

执行顺序:

1如果while循环里的条件为true,则执行循环体;

2循环体执行完毕后,会再次判断循环条件......;

3直到循环条件为false,就结束循环。

实例

int i = 0;
	while (i < 100)
	{
		cout << i << endl;
		i++;
	}

 

do-while 语句

反复执行 statement,直到指定的终止条件 (expression) 的计算结果为零

语法 

do

   statement

while ( expression ) ;

int j = 0;

do

{

cout << j << endl;

j++;

} while (j < 100);

 

区别

while循环属于是一种“当型”的循环结构,当循环条件为true,循环体就会执行,不满足条件,循环体一次也不会执行。所以在while循环中,当执行到一定的程度后,循环条件要变成false,否则就会变成”死循环“。死循环会导致CPU被100%占用,用户会感觉电脑运行缓慢,所以我们要避免编写死循环代码。另外如果循环条件的逻辑写得有问题,也可能会造成意料之外的结果。

while循环而言,如果不满足条件,就不能进入循环。但有时我们需要即使不满足条件,也要至少执行一次,这时就可以考虑使用do-while循环了。do…while循环和while循环功能相似,不同的是,do…while循环至少会执行一次。

实例

#include <iostream>
using namespace std;
int main()
{
	int i = 0;
	while (i < 0)
	{
		cout << "i值:"<<i << endl;
		i++;
	}

	int j = 0;
	do
	{
		cout << "j值:" << j << endl;
		j++;
	} while (j < 0);
}

 

实例中,do while会执行一次打印出:j值:0,而while一次也不执行。

水仙花数打印实例

水仙花数是指一个3位数,它的每个位上的数字的三次幂之和等于它本身。

例如: 1^3+5^3+3^3=153

两种实现方法:

#include <iostream>
using namespace std;
int main()
{
   while (i < 1000)
   {
       int a = 0;
       int b = 0;
       int c = 0;
       a = i / 100;//百位数
       b = i / 10 % 10;//十位数
       c = i % 10;//个位数
       if (i == a*a*a + b*b*b + c*c*c)//如果是水仙花数才打印
       {
           cout<<i<<endl;
       }
       i++;
   }

   int num = 100;
   do
   {
	   int a = 0;//个位
	   int b = 0;//十位
	   int c = 0;//百位
	   a = num % 10;//获取数字的个位
	   b = num / 10 % 10;//获取数字的十位
	   c = num / 100;//获取数字的百位
	   if (a*a*a + b * b*b + c * c*c == num)//如果是水仙花数才打印
	   {
		   cout << num << endl;
	   }
	   num++;
   } while (num < 1000);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未来无限

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值