vendredi 23 février 2018

Input not being read properly by if condition statement

one would think this is easy, but for some odd reason, my conditional statement is ignoring user input.

If I input a character 'N' or 'n' it still executes the 'Y' portion of the conditional statement, have a look:

while (i < 10) {
        cout << "Would you like "<< nameOfDish[i] << "? Please enter Y or N.\n";
        cin >> userResponse;



        if (userResponse == 'y' || 'Y')
        {
            cout << "How many orders of " << nameOfDish[i] << " would you like?\n";
            cin >> quantityOfDish[i];
            if (quantityOfDish[i] == 0) {
                cout << "I suppose you're entitled to change your mind.\n";
            }
            else if (quantityOfDish[i] < 0) {
                cout << "Your generosity is appreciated but I must decline!\n";
                quantityOfDish[i] = 0;
            }

            i++;
        }

        else if (userResponse == 'n' || 'N')
        {
            i++;
        }

        else
        {
           cout << "I think you mumbled NO, so I'll just go on.\n";
           i++;
        }

    }

Is there any particular reason why despite inputting 'n' it still goes into the 'Y' if conditional block?

I have stepped through the code in the debugger, and I noticed that the userResponse variable is being read in properly. Yet, the if condition does not seem to be working properly. Thanks!

Aucun commentaire:

Enregistrer un commentaire