这是作者第一篇文章,本人编程学习不多,大佬们请多多指教。
C++循环结构有多种,如for,while。今天就来说说while循环。
C++中的while循环是一种迭代结构,它会在满足某个条件时一直执行代码块,直到条件不再满足为止。while循环的语法格式如下:
while (condition) {
// 待执行的代码块
}
其中,condition
是一个返回布尔值(真或假)的表达式,如果condition
的值为true(1),则进入循环,执行花括号中的代码块;如果condition的值为false(0),则跳出循环,开始执行循环后面的代码。
例如,下面的代码段展示了如何使用while循环计算1到10的和:
#include <bits/stdc++.h>
using namespace std;
int main(){
int sum = 0;
int i = 1;
while (i <= 10) {
sum += i;
i++;
}
cout << "1到10的和为:" << sum << endl;
return 0;
}
在这个例子中,变量sum
和i
始初化为0和1,循环的条件是i<=10
,只要满足这个条件,就执行sum += i;
和i++,与for(int i=1;i<=10;i++)效果差不多。
两个语句,计算1到10的和,并对变量i
进行自增操作。当i
的值大于10时,循环条件不再满足,跳出循环,输出计算结果。
除了上面说的while框架,还有另一种——do while。上框架:
do{
// 待执行的代码块
} while (condition) ;
注意最后一行要加分号!
while和do while的区别就在于:while是先判断(真),再执行,再判断(真),再执行……而do while不管判断是真是假,先执行一次,再按while的执行方法执行。上面那道计算题用这个方法写结果不变,代码为:
#include <bits/stdc++.h>
using namespace std;
int main(){
int sum = 0;
int i = 1;
do{
sum += i;
i++;
} while (i <= 10) ;
cout << "1到10的和为:" << sum << endl;
return 0;
}
例题:水仙花数(老题目了
各个数位上数字立方之和等于它本身,这个数就是水仙花数。无输入,输出0~999所有水仙花数。
#include <bits/stdc++.h>
using namespace std;
int main () {
int i=0;
int a,b,c;
while( i <= 999 ) { //0~999判断
a = i/100; //求百位
b = i/10%10; //求十位
c = i%10; //求个位
if (pow(a,3)+pow(b,3)+pow(c,3) == i) { //判断是否为水仙花数
cout<<i<<endl;
}
i++;
}
return 0;
}
输出:
好了,while循环到这里就差不多完事了。拜拜~