用了两个switch嵌套,但是不知道哪里有问题开始读不进去

我在进行四则运算的时候,用了switch嵌套switch,但是不知道为什么电脑读不进去,然后就会卡在那一步,有没有神仙帮忙指点一下

图片呢?代码呢?
参考:

#include <stdio.h>
int main()
{
    printf(" 两个整数四则运算: \n");
    printf("-------------------------------------\n");
    printf("1、输入两个整数\n");
    printf("2、加法\n");
    printf("3、减法\n");
    printf("4、乘法\n");
    printf("5、除法\n");
    printf("0、退出\n");
    printf("-------------------------------------\n");
    while (1) {
        printf("输入(0或1):");
        int num, a, b, xz;
        scanf("%d", &num);
        if (num != 0 && num!=1) continue;
        else if (num == 0) break;
        printf("请输入第一个整数:");
        scanf("%d", &a);
        printf("请输入第二个整数:");
        scanf("%d", &b);
        printf("请输入数字选择运算程序:");
        scanf("%d", &xz);
        switch (xz) {
        case 2:
            printf("%d+%d=%d\n", a, b, a + b);
            break;
        case 3:
            printf("%d-%d=%d\n", a, b, a - b);
            break;
        case 4:
            printf("%d*%d=%d\n", a, b, a * b);
            break;
        case 5:
            printf("%d/%d=%f\n", a, b, (float)a / b);
            break;
        default:printf("输入的数字必须为2到5中间的数!\n"); break;
        }
    }
    return 0;
}

img

img


#include 
int main() 
{ 
    printf(" 两个整数四则运算: \n");
    printf("-------------------------------------\n"); 
    printf("1、输入两个整数\n"); 
    printf("2、加法\n"); 
    printf("3、减法\n"); 
    printf("4、乘法\n"); 
    printf("5、除法\n"); 
    printf("0、退出\n"); 
    printf("-------------------------------------\n"); 
    printf("输入(0-5):"); 
    int num;
    int a=0;
    int b=1;
    int xz; 
    scanf("%d",&num); 
    switch(num) 
    { 
        case 1: 
            printf("请输入第一个整数:"); 
            scanf("%d",&a); 
            printf("请输入第二个整数:"); 
            scanf("%d",&b);
            printf("请输入数字选择运算程序:\n"); 
            scanf("%d",&xz); 
            while(xz>=0 && xz<=5) 
            { 
                scanf("%d",&xz); 
                switch(xz) 
                { 
                    case 2: 
                        printf("%d+%d=%d",a,b,a+b);
                        break; 
                    case 3: 
                        printf("%d-%d=%d",a,b,a-b); 
                        break;
                    case 4: 
                        printf("%d*%d=%d",a,b,a*b); 
                        break; 
                    case 5: 
                        printf("%d/%d=%f",a,b,(float)a/b); 
                        break; 
                } 
            }
            break; 
        case 2: 
            printf("0+1=1\n");
            while(xz>5 || xz<0) 
            { 
                scanf("%d",&xz); 
                if(xz==1) 
                { 
                    printf("请输入第一个整数:"); 
                    scanf("%d",&a); 
                    printf("请输入第二个整数:"); 
                    scanf("%d",&b);
                }
                if(xz==2)
                { 
                    printf("%d+%d=%d",a,b,a+b);
                } 
                else if(xz==3) 
                { 
                    printf("%d-%d=%d",a,b,a-b); 
                } 
                else if(xz==4)
                { 
                    printf("%d*%d=%d",a,b,a*b); 
                } 
                else if(xz==5) 
                { 
                    printf("%d/%d=%f",a,b,(float)a/b); 
                } 
            } 
            break; 
        case 3: 
            printf("0-1=1"); 
            break; 
        case 4: 
            printf("0*1=0"); 
            break; 
        case 5: 
            printf("0/1=0"); 
            break; 
        case 0: 
            break; 
    } 
    return 0; 
}