gpt4 book ai didi

c - 嵌套开关 : Outer switch automatically executes the second case after exiting inner switch

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:38 26 4
gpt4 key购买 nike

我正在尝试为我的 RPG 类程序创建一个菜单,它由主菜单(外部开关)和库存菜单(内部开关)组成,我的问题是当我退出内部开关时,下一个案异常(exception)部开关(dispChar())执行。这是代码

do{
printf("\n(i)Open Inventory\t(c)View Character\t(p)[Mini-Game]Hit the Chest!\t(z)Exit\n");
mainMenu = getch();
switch (mainMenu)
{
case 'i':
OpenInventory(&inv);
do
{
printf("\n(a)Equip Weapon\t(b)Equip Helmet\t(c)Equip Suit\t(d)Equip Gloves\t(e)Equip Boots\t(z)Back\n");
op2 = getch();
switch(op2)
{
case 'a':
equipWep(&chara, &inv);
break;
case 'b':
equipHelm(&chara, &inv);
break;
case 'c':
equipSuit(&chara, &inv);
break;
case 'd':
equipGloves(&chara, &inv);
break;
case 'e':
equipBoots(&chara, &inv);
break;
}
}while(op2 != 'z');
case 'c':
dispChar(chara);
break;
case 'p':
if(chara.wep.damage == 0)
{
printf("No weapon equiped!");
}else
{
grind(&chara);
break;
}


}
}while(mainMenu != 'z');

这是我的一些功能:

void OpenInventory(inventory inv[size])
{
dispWep(inv);
dispHelm(inv);
dispSuit(inv);
dispGloves(inv);
dispBoots(inv);
}

void dispChar(character chara)
{
printf("\nName:%s\nSex:%c\nWeapon:%s\nHelmet:%s\nSuit:%s\nGloves:%s\nBoots:%s\n",chara.charName, chara.charGen, chara.wep.weaponName,chara.helm,chara.sut,chara.glabs,chara.buts);
}

如果需要我的其余代码,请告诉我。

最佳答案

如果你不想让外面的switch语句继续执行剩下的cases,在里面的switch结束后添加一个break; 和外层 switch 语句的下一个 case 语句之前。

switch (mainMenu)
{
case 'i':
OpenInventory(&inv);
do
{
printf("\n(a)Equip Weapon\t(b)Equip Helmet\t(c)Equip Suit\t(d)Equip Gloves\t(e)Equip Boots\t(z)Back\n");
op2 = getch();
switch(op2)
{
...
}
} while(op2 != 'z');

// Add this
break;

case 'c':

关于c - 嵌套开关 : Outer switch automatically executes the second case after exiting inner switch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39813977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com