首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Case语句不执行

Case语句不执行
EN

Stack Overflow用户
提问于 2013-09-10 13:46:07
回答 3查看 114关注 0票数 1

这对我来说是一个越来越大的恼怒的来源,当我按下相应的按钮(它们在上面初始化),它们实际上没有执行,我被卡在菜单里。

我肯定这太简单了,我只是没看到而已。

编辑:根据请求添加更多内容

代码语言:javascript
复制
const int POKER = 1;
const int EVAL = 2;
const int EXIT = 3;
const char FIVE_CARD = 'a';
const char TEXAS = 'b';
const char OMAHA = 'c';
const char SEVEN_CARD = 'd';
const char GO_BACK = 'e';
const char MENU[] = "\nPlease choose an option from the following:\n"
                    "1) Play Poker\n2) Set Evaluation Method\n3) Quit\n: ";
const char POKER_MENU[] = "\nPlease choose your game:\n"
                          "a) 5 Card Draw\nb) Texas Hold 'Em\nc) Omaha High\n"
                          "d) 7 Card Stud\ne) Go back\n: ";
int main()
{
int choice = 0;
char poker_choice;

do
{
    choice = askForInt(MENU, EXIT, POKER);
    switch(choice)
    {
        case POKER :
            do
            {
                choice = askForChar(POKER_MENU, GO_BACK, FIVE_CARD);
                switch(poker_choice)
                {
                    case FIVE_CARD :
                        std::cout << "Not implemented yet" << std::endl;
                        break;
                    case TEXAS :
                        std::cout << "Not implemented yet" << std::endl;
                        break;
                    case OMAHA :
                        std::cout << "Not implemented yet" << std::endl;
                        break;
                    case SEVEN_CARD :
                        std::cout << "Not implemented yet" << std::endl;
                        break;
                    case GO_BACK :
                        break;
                }
            }while(poker_choice != GO_BACK);
        case EVAL :
            std::cout << "Not implemented yet" << std::endl;
            break;
        case EXIT :
            break;
    }
}while(choice != EXIT);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-10 13:56:01

choice = askForChar(POKER_MENU, GO_BACK, FIVE_CARD);

应该是

poker_choice = askForChar(POKER_MENU, GO_BACK, FIVE_CARD);

票数 5
EN

Stack Overflow用户

发布于 2013-09-10 13:51:19

既然你说这是在一个方法里,

这里几乎没有什么东西需要检查;

  • 一旦进入该方法,只需打印poker_choice并查看您的值是否被正确传递。
  • 检查德克萨斯州FIVE_CARD的所有情况是否都声明为相同数据类型的常量。
票数 0
EN

Stack Overflow用户

发布于 2013-09-10 14:01:38

您的错误似乎出现在这条线上:

代码语言:javascript
复制
choice = askForChar(POKER_MENU, GO_BACK, FIVE_CARD);

在您的poker_choice中测试switch,但是将值分配给choice

它应该是:

代码语言:javascript
复制
   poker_choice = askForChar(POKER_MENU, GO_BACK, FIVE_CARD);
// ^^^^^^

   switch(poker_choice)
   // ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18720695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档