目录
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);
}