If statement skipping else if straight to else
<p>I'm attempting to make the statement below do the following.
If age is greater than 20 and less than 50, continue.
If age is less than 20 and greater than 50, error restart.
if anything else, error, restart.</p>

<p>But, for some reason it skips right over the else if condition and goes straight to else. If I input "19" for age, it outputs "Error.", if I input 51 for age, it outputs "Error." Whats up?</p>

<pre><code>#include "stdafx.h"
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;


int plyAgeCreate() {

    int plyAge = 0;

    cout &lt;&lt; "Enter an age" &lt;&lt; endl;
    cin &gt;&gt; plyAge;

    //If age is greator than 20 and less than 50, accept.
    //Else if age is less than 20 but greator than 50, decline.
    //else, error. Restart.

    if (plyAge &gt;= 20 &amp;&amp; plyAge &lt;= 50) {
        cout &lt;&lt; "Welcome!" &lt;&lt; endl;
    }
    else if (plyAge &lt; 20 &amp;&amp; plyAge &gt; 50) { //Why is this being skipped?
        cout &lt;&lt; "Between 20 and 50" &lt;&lt; endl;
        return plyAgeCreate();
    }
    else {
        cout &lt;&lt; "Error" &lt;&lt; endl;
        return plyAgeCreate();
    }



}


int main()
{

    plyAgeCreate();

    system("pause");
    return 0;
}
</code></pre>