我正在尝试为我的RPG-esque程序创建一个菜单,它包括主菜单(外部开关)和Inventory菜单(内部开关),我的问题是当我从内部开关退出时,下一个案例外部开关(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);
}
如果需要我的其他代码,请告诉我。
答案 0 :(得分:2)
如果您不希望外部switch
语句继续执行其余情况,请在内部break;
结束后和下一个switch
之前添加case
switch
外部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':
声明的Infragistics UltraGrid
声明。
Double