C++ 即使为false,循环也不会退出
我知道这是一个基本问题,但我找不到解决办法。 尽管我输入了使循环错误的内容,但循环仍在继续C++ 即使为false,循环也不会退出,c++,debugging,C++,Debugging,我知道这是一个基本问题,但我找不到解决办法。 尽管我输入了使循环错误的内容,但循环仍在继续 { cout << "1 - Load Movie File" << endl; cout << "2 - View Total Movie Database Runtime" << endl; cout << "3 - View Movies by Rating" << endl;
{
cout << "1 - Load Movie File" << endl;
cout << "2 - View Total Movie Database Runtime" << endl;
cout << "3 - View Movies by Rating" << endl;
cout << "4 - Export Movies by Genre" << endl;
cout << "5 - Clear Currently Loaded Database" << endl;
cout << "6 - Print Database Sorted by Year" << endl;
cout << "Q - Quit" << endl;
cout << "Selection >> ";
do{
cin >> selectionMenu;
selectionMenu = tolower(selectionMenu);
if(selectionMenu != '1' || selectionMenu != '2' || selectionMenu != '3' || selectionMenu != '4' || selectionMenu != '5' || selectionMenu != '6' || selectionMenu != 'q' )
{
cout << "Please enter a valid selection: ";
}
}while(selectionMenu != 1 || selectionMenu != 2 || selectionMenu != 3 || selectionMenu != 4 || selectionMenu != 5 || selectionMenu != 6 || selectionMenu != 'q' );
}
{
不能这种情况:
if(selectionMenu != '1' || selectionMenu != '2' || selectionMenu != '3' || selectionMenu != '4' || selectionMenu != '5' || selectionMenu != '6' || selectionMenu != 'q' )
保证始终为真。例如,使用&
而不是&您想要的&
,而不是|124;
选择菜单!=1 | |选择菜单!=2
始终为真。您还希望与int或char进行比较。您的if()
与char相比,你的循环做了一些完全不同的事情。这里的要点是不要假设某个东西的值是什么。如果循环的条件为false,它将始终退出。如果它没有退出,条件就不是false。selectionMenu
不能同时是所有7个值。switch
语句更好在处理菜单选择时要比<代码> >如果“< /代码>梯子”。您可以使用<代码>默认处理无效输入。