循环嵌套

   多层循环执行的过程是外层循环每执行一次,内层循环就完整的执行一遍。
#include<iostream.h>
void main()
{
    int i,j,k;
    cout<<"i"<<"j"<<"k"<<endl;
    for(i=0;i<2;i++)
        for(j=0;j<2;j++)
            for(k=0;k<2;k++)
                cout<<i<<j<<k<<endl;
}

这是一个三层循环,最外层循环每定一个i值时,第二层循环j从0~1执行两次循环;第二层循环的循环变量j每定一个值,第三层循环的k从0~1执行两次循环,第三层的循环体cout<<i<<j<<k;共执行了2*2*2=8次循环。通过运行结果,可以非常清楚的了解循环过程。

例题一、打印乘法口诀表。

#include<iostream.h>
void main()
{
    int i,j,k;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
            cout<<j<<"*"<<i<<"="<<i*j<<" ";
                cout<<endl;
                }

}

用i控制行,用j控制列,需要两层循环。
例题二、两个乒乓球队比赛,各出3人,甲队为a,b,c三人,乙队为x,y,z三人,有人向队员打听比赛名单,a说他不和x比,c说他不和x、z比,请找出三对比赛选手的名单。
用穷举法。

#include<iostream.h>
void main()
{
    char i,j,k;
    for(i='x';i<='z';i++)
        for(j='x';j<='z';j++)
        if(i!=j)//a和b的对手不能是同一个人
            for(k='x';k<='z';k++)
                if(i!=k&&j!=k)//a,b,c的对手不能同一个人
                    if(i!='x'&&k!='x'&&k!='z')
                    //a的对手不是x,c的对手不是x和z
                        cout<<"顺序是"<<"a--"<<i<<" "<<"b--"<<j<<" "<<"c--"<<k;
}

i 是a的对手,j是b的对手,k是c的对手。
循环中的中途退出
break语句
1、break语句用在switch中时,使程序跳出switch而执行switch后的程序
2、break语句用在for、do-while和while中,可使程序终止循环而执行循环后的语句。通常break与if配合,即满足条件时便跳出循环。
例题三、输入一个数判断是否为素数。
素数是只能被1和自身整除的数。

#include<iostream.h>
void main()
{
    int n;
    cin>>n;
    int i=2;
    for(;i<n;i++)

        if(n%i==0)
            break;
        if(i>=n)
            cout<<"是素数";
        else
            cout<<"不是素数";

1、break语句不能用于循环语句或者switch语句之外任何语句中。
2、在多层循环中一个break只能跳出一层,而跳到最外层需要多个地方设置break。

continue语句
continue语句是跳过循环体中剩余语句而强行执行下一次循环,continue语句只用于循环体中,通常与if配合。
continue和break区别是,continue只结束本次循环,继续执行下一次循环,而break则是结束整个循环。
例题四、输出能被3和7整除的三位整数。

#include<iostream.h>
void main()
{
    int i;
    int count=0;
    for(i=100;i<1000;i++)
    {
        if(i%3!=0) continue;
        if(i%7!=0) continue;
        count++;
        cout<<i<<" ";
        if(count%5==0)
            cout<<endl;
    }
}

continue对for循环,跳过循环体其余语句,转向循环增量表达式3的计算。对do-while和while循环,跳过循环体其余语句,转向循环条件的判定,继续判定是否循环。
循环嵌套时,break和continue只影响包含他们的最内层循环,与外层循环无关。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值