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();
}
}
答案 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