循环嵌套:在一个循环结构中又完整地包含着另一个循环结构
嵌套层次一般不超过3层,以保证可读性。
【例1】
输入10个圆的半径,要求输入数据是非负数,可对半径反复输入,最多输入3次,或直到输入半径为正数,输出10个圆的半径和相应的面积。
#include <iostream>
using namespace std;
int main ()
{
int i,j;//i为圆的个数,j为输入的次数
double s,r;
for(i=1;i<=10;i++)
{
j=1;
do{
cout<<"Input r(r>0):";
cin>>r;
j++;
}while(r<=0&&j<=3);
if(r>0){
s=3.14*r*r;
cout<<"第"<<i<<"个圆r="<<r<<" s="<<s<<endl;
}
else cout<<"第"<<i<<"个圆r error!"<<endl;
}
return 0;
}
【例2】
输入10个圆的半径,一定是正数,求这10个圆的半径最大那个圆,并输出相应的半径和面积
这时不用嵌套
#include <iostream>
using namespace std;
int main ()
{
int i;
double s,r,max;
cout<<"Input r(r>0):";
cin>>r;
max=r;//将第一个设为最大,用后面输入的值不断与它比较,有更大的就更新max的值
for(i=1;i<10;i++)
{
cout<<"Input r(r>0):";
cin>>r;
if(r>max) max=r;
}
cout<<"max r:"<<max<<endl;
s=3.14*r*r;
cout<<"max area:"<<s<<endl;
return 0;
}
什么时候需要用嵌套循环?
根据具体题目判断,当题目有两种不同的重复性操作时,可能需要嵌套,外层循环执行完进入内层循环。