为什么myDirection要小于1或大于4

enum orientation : byte
{
    north = 1,
    south = 2,
    east = 3,
    west = 4
}
struct route
{
    public orientation direction;
    public double distance;
}
class Program
{
    static void Main(string[] args)
    {
        route myRoute;
        int myDirection = -1;
        double myDistance;
        Console.WriteLine("1) North\n2) South\n3) East\n4) West");
        do
        {
            Console.WriteLine("Select a direction:");
            myDirection = Convert.ToInt32(Console.ReadLine());
        }
        while ((myDirection < 1) || (myDirection > 4));

小于1或大于4表示输入的方向不合法,需要从新输入

你的 do while 循环条件是这么设置的

确保用户输入的方向是1-4啊。只要输入的值小于1,或者大于4,就是输入错误,用while循环让用户一直输入,直到输入1到4之间为止