• 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;
    }
  • 相关阅读:
    深入理解JavaScript的闭包特性 如何给循环中的对象添加事件
    兼容低版本浏览器的getElementByClassName方法
    印象深刻的bug
    pyinstaller将python编写的打卡程序打包成exe
    自动化环境搭建遇到问题
    VS2010带不出System.Data.OracleClient这个引用的解决方案
    迭代与列表生成式、生成器
    Python函数
    Python基础
    python+Selenium 环境搭建
  • 原文地址:https://www.cnblogs.com/jixiaowu/p/3895396.html
Copyright © 2020-2023  润新知