L oop не выйдет несмотря на ложь - PullRequest
0 голосов
/ 28 апреля 2020

Я знаю, что это базовый c вопрос, но я не могу найти решение для него. Несмотря на то, что я ввел что-то, что делает l oop ложным, l oop продолжается.

{

        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' );



}

Переменная selectionMenu - это символ на тот случай, если кто-нибудь спросит

1 Ответ

1 голос
/ 28 апреля 2020

Это условие:

if(selectionMenu != '1' || selectionMenu != '2' || selectionMenu != '3' || selectionMenu != '4' || selectionMenu != '5' || selectionMenu != '6' || selectionMenu != 'q' )

гарантированно всегда будет верным. Используйте && вместо ||.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...