while循环
/*
while 循环
while循环是一种基本的循环结构模式,只要给定的条件为真,while循环会重复执行一组语句。
格式:
while(条件表达式){
语句块; //可以是1条语句或者是多条语句,1条语句可以不用大括号
}
条件表达式可以是任意表达式,任意非零值都为真,0为假
当条件为假时,程序执行循环结构后面的语句
与if对比,if条件为真只会执行一次,while会执行多次,直到条件为假
总结:
循环的三要素,初始化,条件,使循环停步的方式
计数,求和要初始化为0,求积需要初始化为1
倍数关系,n%x==0,说明n是x的倍数
*/
#include <iostream>
using namespace std;
int main() {
// 输出1~10,一行一个
/*
循环的三要素:1循环的初始值、2循环条件、3让循环停止的方式
如果缺少第3步,那么i<=10永远为真,循环会一直执行
如果i不赋初始值,i是一个随机数
执行过程:程序从上向下执行,int i=1执行1次,判断循环条件,如果为真则执行循环体(执行完循环体后,再判断条件,如此反复),如果为假则执行循环结构后面的语句
*/
int i=1; //1循环的初始值
while(i<=10){ //2循环条件
cout<<i<<endl;
i++; //3让循环停止的方法
// 如果没有i++或对i作改变,那么i<=10永远为真,循环会一直进行
// i=i+1; i++与i=i+1是等价的,都是i自增1
}
cout<<"最后i的值为:"<<i<<endl; //当i=11时,循环条件为假,那么就结构当前循环结构,执行下面的语句
cout<<endl;
/*
输出:
1
2
3
4
5
6
7
8
9
10
最后i的值为:11
*/
/*
如果上面把i++放在cout<<i<<endl;前面呢
对i的改变可以放在任意的位置,但执行的结构会有不同,如果放在前面,则先变化i再输出i,如果放在后面则先输出i再变化i
所以i++的位置不能随意放置,位置不能,执行结果不同
*/
i=1;
while(i<=10){
i++;
cout<<i<<endl;
}
cout<<"最后i的值为:"<<i<<endl;
/*
输出:
2
3
4
5
6
7
8
9
10
11
最后i的值为:11
*/
// 循环1~10所有奇数
/*
对于i++,当然也可以是别的,比如:i=i+2,i=i*3等,根据需要就变化就可以,直到条件为假,循环结构
*/
// 写法1:
i=1;
while(i<=10){
// 如果是奇数就输出
if(i%2==1){
cout<<i<<endl;
}
i++; //每次自增加1,在输出的过程中判断一个是否输出,注意i++不能放入if结构中,只有当是奇数才会自增加,那偶数就不会自增
}
cout<<"最后i的值为:"<<i<<endl;
cout<<endl;
/*
输出:
1
3
5
7
9
最后i的值为:11
*/
// 写法2:循环次数减少,效率更高
i=1;
while(i<=10){
cout<<i<<endl;
i=i+2; //每次自增2,刚好是奇数,直接输出奇数,循环次数更小,效率更高
}
cout<<"最后i的值为:"<<i<<endl;
cout<<endl;
/*
输出:
1
3
5
7
9
最后i的值为:11
*/
return 0;
}