namespace Ch05Ex03
{
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));
Console.WriteLine("Input a distance:");
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation)myDirection;
myRoute.distance = myDistance;
Console.WriteLine("myRoute specifies a direction of {0} and a " +
"distance of {1}", myRoute.direction, myRoute.distance);
Console.ReadKey();
}
}
}不知道那个值为什么是-1?我觉得没有也行阿...请指教下,谢谢咯!
{
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));
Console.WriteLine("Input a distance:");
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation)myDirection;
myRoute.distance = myDistance;
Console.WriteLine("myRoute specifies a direction of {0} and a " +
"distance of {1}", myRoute.direction, myRoute.distance);
Console.ReadKey();
}
}
}不知道那个值为什么是-1?我觉得没有也行阿...请指教下,谢谢咯!
int myDirection = -1;为什么一定得是-1呢?
默认为0
编译是可以通過的,不過習慣是先赋值,int 默认为0,但不赋值這0為32位,還是64位要看當前應用機了,是有區別的。所以先赋值是好習慣。
则在while条件判断中0将被判断为真,从而跳出循环往下执行,而myDirection又不对应上面的东南西北的某个值
。