利用条件限制跳出深层嵌套循环

前言

**第一个while条件设为a<4,当   a+4   后能够实现退出所有循环

**第二个while条件设为a<3,当   a+3   后使其跳到条件为a<4的while循环

**第三个while条件设为a<2,当   a+2   后使其跳到条件为a<3的while循环

**第四个while条件设为a<1,(要是这里设true,行不行?)不行! 设为true,不管a+多少,始终满足此while(true)循环,导致跳不出去

  {以下不用switch的原因是:if、else能规避一些错误输入}

话不多说,直接上代码。


#include<iostream>
using namespace std;
int main(){
    int a=0;
    while(a<4)
    {
        a=0;//初始化变量a
        cout<<"1,开始 2,退出"<<endl;
        int select0=0;
        cin>>select0;
        if(select0==1)
        {
            while(a<3)
            {
                a=0;//初始化变量a
                cout<<"这是第一层"<<endl;
                cout<<"请选择:"<<endl;
                cout<<"1,去第二层 2,返回返回主界面"<<endl;
                int select1=0;
                cin>>select1;
                if(select1==1)
                {
                    while(a<2)
                    {
                        a=0;//初始化变量a
                        cout<<"这是第二层"<<endl;
                        cout<<endl;
                        cout<<"请选择:"<<endl;
                        cout<<"1,去第三层 2,返回第一层 3,返回主界面 4,退出"<<endl;
                        int select2=0;
                        cin>>select2;
                        
                        if(select2==1)
                        {
                            while(a<1)
                            {
                                a=0;//初始化变量a
                                cout<<"这是第三层"<<endl;
                                cout<<endl;
                                cout<<"请选择:"<<endl;
                                cout<<"1,去第四层 2,返回第二层 3,返回主界面 4,去第一层 5,退出"<<endl;
                                int select3=0;
                                cin>>select3;
                                if(select3==1)
                                {
                                    cout<<"这是第四层"<<endl;
                                    cout<<"已经是最底层了!"<<endl;
                                }
                                else if(select3==2)
                                {
                                    break;
                                }
                                else if(select3==3)
                                {
                                    a+=3;
                                }
                                else if(select3==4)
                                {
                                    a+=2;
                                }
                                else{
                                    a+=4;
                                }
                            }
                        }
                        else if(select2==2)
                        {
                            break;
                        }
                        else if(select2==3)
                        {
                            a=a+3;
                        }
                        else{
                            a=a+4;
                        }
                    }
                }
                else{
                    break;
                }
            }
        }
        else{
            break;
        }
    }
    system("pause");
    return 0;
}

 


补充一点:所有跳出当前循环的break;都能替换为【while(a<n)】a=a+n,来实现。


----------这就实现了想去哪层就去那层----------

Guess you like

Origin blog.csdn.net/qq_63032918/article/details/121317335