诸君,有问题需要各位解决


void xiugai()
{
    printf("请输入要修改的学生信息学号:");
    scanf_s("%d", &d);
    for (i = 0; i < n; i++)
        if (l[i].id == d)
            break;
    if (i == n)
        printf("查无此人\n");
    else
    {
        int a = 0;

        while (1)
        {
            
            printf("请选择需要修改的学生信息(1:学号   2:姓名   3:成绩   4:退出):");
            scanf_s("%d", &a);
            switch (a)
            {
            case 1:
                gaiid();
                break;

            case 2:
                gainame();
                break;

            case 3:
                shanchu();
                break;

            case 4:
                break;

            default:
                printf("无效输入\n");
                system("pause");
            }

        }
        system("pause");
    }

我应该在case4里面加什么才能返回主菜单,而且这段代码在完成switch中的函数后会回到开头再输出一次,进行无关操作后才会退出,我不明白为什么会这样

你这样只能goto,为什么不用do while 循环,以0作为退出选项