如果此代码中的答案为“N”,我如何进入第一个while循环:

时间:2015-09-16 19:38:53

标签: c++

while (true)
{
    cout << "1- Add record" << endl;
    cout << "2- List records" << endl;
    cout << "Select your choise: ";   cin >> n;
    switch (n) {
    case 1:      m1.addrecord(); 
        while (true) {
            cout << "Add another record? (Y/N): ";  cin >> ch;
            if (ch == 'Y')
                m1.addrecord();
            else if (ch == 'N')
                continue;
            }
    case 2:     m1.listrecords(); 
    }
}

1 个答案:

答案 0 :(得分:2)

在循环中,continue告诉循环执行循环的下一次迭代,跳过循环中的其余代码。

在循环中,break告诉循环退出循环,即使没有满足结束循环的条件。

由于while循环的条件为true,因此它永远不会结束;你的两个可能的选择不会导致循环退出。

因此,您的解决方案是将continue更改为break,正如@R_Kapp在评论中所说的那样。

while (true) {
    cout << "Add another record? (Y/N): ";  cin >> ch;
    if (ch == 'Y')
        m1.addrecord();
    else if (ch == 'N')
        break; // This is changed from `continue` to `break`
}

正如用户@LogicStuff指出的那样,在break语句中,您在案例结束时也错过了switch语句。由于这不是问题的一部分,因此您必须自己查看。

请查看此链接以获取有关switch声明的进一步参考: http://en.cppreference.com/w/cpp/language/switch