Search code examples
c++xcodexcode10

Getting error "code will never execute" when using do-while loop for password checking function in c++e


I put a do/while loop in my password function but it doesn't work. I use xcode10 to code c++ and when I use a semicolon after the while statement it shows an error saying code will never execute

string password (string g)
{
    string ch = "hello" ;
    cout << "Enter password";
    getline(cin, g);
    do {
        if (ch.compare(g) != 0) {
            cout << " INCORRECT PASSWORD";
            return (0);
        } else {
            cout << "correct password";
            return (string(g));
        }
    } while (ch.compare(g) == 0);  //this is where it shows the error that the code will never exec
}

I wanted to put this loop and a few other things so I can make this a infinite loop till you enter the correct password.


Solution

  • Well in your if statement you will return in both cases causing the function to stop so it will never get to the while condition to test it

      string password(string g)
    {
        string ch = "hello";
        cout << "Enter password\n";
        do
        {
            getline(cin, g);
    
            if (ch.compare(g) != 0)
            {
                cout << " INCORRECT PASSWORD\n";
            }
            else {
                cout << "correct password";
                return (string(g));
            }
        } while (ch.compare(g) != 0);  
    }