你的do while 语句是个死循环,而输入错误时,又会突出整个程序,应该为:
while(pb.age > 0)
{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Input Error,Please Re-Input!");
pb.age=0;
}
}
还有,age还是用int 比较好吧?
while(pb.age > 0)
{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Input Error,Please Re-Input!");
pb.age=0;
}
}
还有,age还是用int 比较好吧?
while(pb.age = 0)
后面照旧。
{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Input Error,Please Re-Input!");
pb.age=0;
}
}
在try块的最后一行添加break;
do
{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Please Re-Input!");
pb.age=0;
}
}while( pb.age == 0 );
do{
try
{
Console.WriteLine("Please Enter Your Age:");
pb.age=byte.Parse(Console.ReadLine());
}
catch(Exception e)
{
Console.WriteLine("Input Error,Please Re-Input!");
pb.age=0;
}
}while(pb.age > 0)
应该是while(pb.age == 0)