这问题如何解决?回答加精

void game(){

system("cls");
 int gamer;  // 玩家出拳
int computer;  // 电脑出拳
int result;  // 比赛结果

int i;
// 为了避免玩一次游戏就退出程序,可以将代码放在循环中
while (i){

    printf("1:剪刀\n2:石头\n3:布\n0:不玩了\n");


            printf("请输入你要出的拳头:\n");
                    scanf("%d",&gamer);
                      switch (gamer){
        case 1:
            gamer=4;
            break;
        case 2:
            gamer=7;
            break;
        case 3:
            gamer=10;
            break;
        case 0:{system("cls");
            menu();}
        break;



}    
    srand((unsigned)time(NULL));  // 随机数种子
    computer=rand()%3;  // 产生随机数并取余,得到电脑出拳
    result=gamer+computer;  // gamer 为 char 类型,数学运算时要强制转换类型

    printf("电脑出了");
    switch (computer)
    {
        case 0:printf("剪刀\n");break; //4    1
        case 1:printf("石头\n");break; //7  2
        case 2:printf("布\n");break;   //10 3
    }
    printf("你出了");
    switch (gamer)
    {
        case 4:printf("剪刀\n");
            break;
        case 7:printf("石头\n");
            break;
        case 10:printf("布\n");
            break;
    }
    if (result==6||result==7||result==11) printf("你赢了!");
    else if (result==5||result==9||result==10) printf("电脑赢了!");
    else printf("平手");
    system("pause>nul&&cls");  // 暂停并清屏
}

}
这段代码让他在第一个case 0处就退回menu
不执行后面那段代码

int i;
->
int i=1;