• 27.数列1,2,2,3,3,3,4,4,4,4,5,……


    ​#include<iostream>
    using namespace std;
    
    int main()
    {
        for(int i=1;i<=10;i++)
        {
            for(int j=1;j<=i;j++)
            {
                cout<<i<<" ";
            }
            cout<<endl;
        }
        return 0;
    }
    引申:数列1,2,2,3,3,3,4,4,4,4,5,……第100个是多少?
    可以学习到如何从嵌套for循环中跳出
    (1)在外层for循环中添加一个判断条件,用于循环跳出
    #include<iostream>
    using namespace std;
    
    int main()
    {
        int m=1;
        int a=100;
        for(int i=1;i<=100;i++)
        {
            for(int j=1;j<=i;j++)
            {
                cout<<i<<" ";
                m++;
                if(m>=100)
                {
                    cout<<endl;
                    cout<<"第100个数是: "<<i<<endl;
                    break;
                }
            }
            if(a==m)//从嵌套for循环中跳出:在外层for中添加一个判断条件
            {
                break;
            }
            cout<<endl;
        }
        return 0;
    }

    (2)运用goto语句:不是很建议使用goto语句,因为会破坏程序的整体性

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int m=1;
        int a=100;
        for(int i=1;i<=100;i++)
        {
            for(int j=1;j<=i;j++)
            {
                cout<<i<<" ";
                m++;
                if(m>=100)
                {
                    cout<<endl;
                    cout<<"第100个数是: "<<i<<endl;
                    goto next;
                }
            }
            cout<<endl;
        }
        next:
            return 0;
    }

     (3)设置超出边界条件,导致循环结束

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int m=1;
        int a=100;
        for(int i=1;i<=a;i++)
        {
            for(int j=1;j<=i;j++)
            {
                if(i<100)
                {
                    cout<<i<<" ";
                }
                m++;
                if(m>=100)
                {
                    cout<<endl;
                    if(i<100)
                    {
                        cout<<"第100个数是: "<<i<<endl;
                    }
                    j=i+1;//设置超出边界条件,导致循环结束
                    i=a+1;//设置超出边界条件,导致循环结束
                }
            }
            cout<<endl;
        }
        return 0;
    }

    (4)如果这段循环代码用的比较多,可以考虑把这段代码做成函数,在需要跳出多重循环的地方直接使用return

    #include<iostream>
    using namespace std;
    int ShuChu(int );
    
    int main()
    {
        int n;
        cout<<"please input an number: "<<endl;
        cin>>n;
        ShuChu(n);
    
    
        return 0;
    }
    
    int ShuChu(int index)
    {
        int m=1;
        for(int i=1;i<=index;i++)
        {
            for(int j=1;j<=i;j++)
            {
                if(i<index)
                {
                    cout<<i<<" ";
                }
                m++;
                if(m>=100)
                {
                    cout<<endl;
                    if(i<100)
                    {
                        cout<<"第100个数是: "<<i<<endl;
                    }
                    return m;//设计成函数,在需要跳出多重循环的地方直接用return
                }
            }
            cout<<endl;
        }
    }

    (5)设计成异常处理

    #include<iostream>
    using namespace std;
    
    int main()
    {
        int m=1;
        int a=100;
        try//设计成异常处理,
        {
            for(int i=1;i<=100;i++)
            {
                for(int j=1;j<=i;j++)
                {
                    cout<<i<<" ";
                    m++;
                    if(m>=100)
                    {
                        cout<<endl;
                        cout<<"第100个数是: "<<i<<endl;
                        throw 0;//抛出异常,从而跳出嵌套循环
                    }
                }
                cout<<endl;
            }
        }catch (int){}
    
        return 0;
    }
  • 相关阅读:
    从netty源码里拿到的关于http错误码,自己学习下
    9步搞定:用迅雷等工具下载百度网盘资源
    jstack定位cpu高占用
    solr学习笔记section2-solr单机(节点)简单的core操作
    solr学习笔记section1-在tomcat中部署单(节点)机solr5.5.4
    简单排序
    Thrift生成的bean对象,用java内省操作时注意(自己笔记)
    Netty方法误解ChannelHandlerContext.writeAndFlush(Object msg)
    腾讯笔试题,木棍组成多边形判断
    微软笔试题,luckstring
  • 原文地址:https://www.cnblogs.com/jixiaowu/p/3895396.html
Copyright © 2020-2023  润新知