无法弄清楚为什么while循环是无限的

时间:2019-05-02 22:55:07

标签: c++

我的代码使用了我认为简单的while循环。它检查我拥有的向量中是否已经存在randCard,如果存在,则创建一个新的randCard

我在循环中添加了cout语句以尝试查找正在运行的进程,并发现它仅在while循环中运行,没有嵌套的for循环。问题如下:

    bool isSame = true;


    //Make sure they don't be the same cards

    while (isSame){
        cout << "While entered" << endl;
        for(int i = 0; i < notToUse.size(); i++){
            if(randCard == notToUse.at(i)){
                randCard = rand() % 24;

            }
            cout << "First for ran" << endl;
        }
        for (int i = 0; i < notToUse.size(); i++){
            if (randCard == notToUse.at(i)){
                cout << "Recheck loop" << endl;
                break;
            }
            else{
                cout << "Else ran" << endl;
                isSame = false;
            }
        }
    }

randCard来自一类卡片。向量notToUse由已经使用的卡索引组成。最后的cout语句看起来像这样:

While entered
While entered
While entered
While entered
While entered

似乎甚至没有访问for循环。我该如何解决?

1 个答案:

答案 0 :(得分:2)

对于可能偶然发现此问题的任何人,答案均已在评论中得到解决。向量的大小为0,因此for循环甚至没有运行。