Experiencing an issue with my while loop
<p>I would like some advice on where I am going wrong here. The console application displays menu choices and asks the user to enter a valid menu option. </p>

<p>Now it's meant to work so that if the number entered is 1, 2 or 3, it says 'You have chosen option x' then 'Press any key to close' but the program doesn't display the 'You have chosen option x' then 'Press any key to close'. It works though if the number is less than 1 or above 3, saying 'Menu choice not between 1-3' then 'Please re-enter'. Where am I going wrong? </p>

<p>I haven't been doing programming for very long and if I can correct my error this time, I know for the future.</p>

<pre><code>using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _4._6
{
    class Program
{
    static void Main(string[] args)
    {
        int iChoice = 0;

        Console.WriteLine("1: Add two numbers");
        Console.WriteLine("2: Multiply two numbers");
        Console.WriteLine("3: Exit the program");

        Console.WriteLine("Enter your choice: ");
        iChoice = Convert.ToInt32(Console.ReadLine());


        while (iChoice &lt; 1 || iChoice &gt; 3)
        {
            Console.WriteLine("Menu choice not between 1-3: ");
            Console.Write("Please re-enter: ");
            iChoice = Convert.ToInt32(Console.ReadLine());
            Console.ReadKey();

            if  (iChoice &gt; 1 || iChoice &lt; 3)
            {
                Console.WriteLine("You have chosen option " + iChoice);
                iChoice = Convert.ToInt32(Console.ReadLine());
                Console.ReadKey();

            }



        }
    }
}
</code></pre>

<p>}</p>
