1.循环的嵌套
如果一个循环体内包含又一个循环语句时,就构成了循环的嵌套。
C++语言的循环语句(while、do、for)可以互相嵌套,循环嵌套的层数没有限制,可以形成多重循环。
使用多重循环的时候,嵌套的循环控制变量不能相同。(为了更好地控制各个变量)
[例 8.1] 打印九九乘法表
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j;
for (i=1;i<=9;i++){ //控制有几行
for(j=1;j<=i;j++) //控制每一行
cout<<i<<"x"<<j<<"="<<i*j<<" ";
cout<<endl; //行末要换行
}
return 0;
}
i=1 //第一行
j=1 //第一行的数,第一行一个数
i=2 //第二行
j=1,j=2 //第二行的数,第二行两个数
i=3 //第三行
j=1,j=2,j=3 //第三行的数,第三行三个数
i=4 //第四行
j=1,j=2,j=3,j=4 //第四行的数,第四行四个数
......
运行结果
2.循环语句的使用
1)计数型循环计数型循环用于处理已知循环次数的循环过程。
控制变量在每次循环时都要发生规律性变化(递增或递减),当控制变量达到预定的循环次数时,循环就结束。
计数型循环常使用for语句。
[例 8.1] 求S=1!+2!+3!+…+10!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int s,n,t;
for(s=0,t=1,n=1;n<=10;n++)
t=t*n,s=s+t; //t里面放的是n的阶乘,s里面是阶乘的和
cout<<s<<endl;
return 0;
}
t=1!,s=1!,n=1
t=2!,s=1!+2!,n=2
t=3!,s=1!+2!+3!,n=3
t=4!,s=1!+2!+3!+4!,n=4
运行结果
4037913
2)条件型循环条件型循环用于处理循环次数未知的循环过程,称为“不定次数循环”。
在条件型循环中,由于事先不能准确知道循环的次数,因此循环控制是由条件来判定的。在每次循环时检测这个条件,当条件一旦满足,循环就结束。
条件型循环常使用while语句和do while语句。
[例 8.2] 求π的近似值 π/4≈1-1/3+1/5-1/7+1/9-…,直到最后一项的绝对值小于10-7 为止.
#include<bits/stdc++.h>
using namespace std;
int main()
{
double s=1,pi=0,n=1,t=1;
while (fabs(t)>1e-7) //fabs()函数求绝对值
pi=pi+t,n=n+2,s=-s,t=s/n; //s是分子,每一次要改变一次符号
cout<<pi*4<<endl; //最后乘4才是π的值哦
return 0;
}
运行结果
3.14159