数据结构子系统 switch不会写了

第一个case1还没执行完就到case2中去了困惑
源代码太长了 上传不来

c++

switch(c){
        while(1)
          {            
            case 1:
                {
                    menu_1();
                    scanf("%d",&c1);    
                    system("cls");
                    switch (c1)
                    {
                        case 1:
                            {
                            ElemType a[]={1,2,3,4,5,6,7,8};    
                            Create(sql,a,8);
                            break;                                
                            }
                        case 2:
                            {
                            ElemType x ;
                            int y;
                            printf("请输入要插入的元素及其位置(中间用空格隔开):\n");
                            scanf("%d%d",&x,&y);
                            Insert(sql , x , y);                                
                            }break;
                        case 3:
                            {
                            Delete(sql );        
                            }break;
                        case 4:
                            {
                            Output(sql);        
                            }break;
                        case 0:
                            {
                                
                            }break;
                    }
            case 2:
                {
                menu_2();
                scanf("%d",&c2);
                system("cls");
                if(c2==0);
                {
                menu();    
                }    
                break;    
                }
            case 3:
                {
                    menu_1();
                    scanf("%d",&c3);
                    system("cls");
                    if(c3==0);
                    {
                    menu();    
                    }
                    break;
                }
            case 4:
                {
                    menu_4();
                    scanf("%d",&c4);
                    system("cls");
                    if(c4==0);
                    {
                    menu();    
                    }
                    break;
                }
            case 5:
                {
                    menu_5();
                    scanf("%d",&c5);
                    system("cls");
                    if(c5==0);
                    {
                    menu();    
                    }
                    break;
                }
            case 6:
                {
                    menu_6();
                    scanf("%d",&c6);
                    system("cls");
                    if(c6=1)
                    {
                    if(InitList(T)&&CreatList(T))
                    {
                        printf("创建成功\n");
                    }                        
                    printf("请输入要查找的关键字:\n");
                    scanf("%d",&key);
                    result=search1(T,key);
                    Show(result,key);
                    system("cls");
                     } 
                    if(c6=2)
                    {
                    if(InitList(T)&&CreatList(T))
                    {
                        printf("创建成功\n");
                    }                        
                    printf("请输入要查找的关键字:\n");
                    scanf("%d",&key);
                    result=search2( T, key, 1, T.length);
                    Show(result,key);                        
                    }
                    if(c6==0);
                    {
                    menu();    
                    }
                    break;
                }
            case 7:
                {
                    menu_7();    
                    scanf("%d",&c7);
                    system("cls");
                    if(c7==0);
                    {
                    menu();    
                    }
                    break;
                }
            case 0:
                {
                    printf("已退出系统!\n");
                }
                break;                
            }
    
     }

你所有的case都不写break,这是什么写法
还有,while怎么能写在switch里面,好好粘代码,不要胡搞乱搞
源代码太长,你可以将其它case里的内容封装一下,以函数的方式调用,然后函数分别发出来,这样你自己也便于调试
不要一个函数里写好几百行的长代码