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
语句更好在处理菜单选择时要比<代码> >如果“< /代码>梯子”。您可以使用<代码>默认处理无效输入。