试图从键盘输入中获取有效的整数

时间:2014-10-29 05:08:20

标签: c#-4.0

我试图从用户输入中获取一个有效的整数,我写的函数必须显示这些输入的错误信息..

1)0或负数

2)一个字符串

适用于字符串但不适用于0或负数

我无法找到我的错误..: - (

 public int getValidNumber()
    {
        int temp_int;
        while ((!int.TryParse(Console.ReadLine(), out temp_int)) && (temp_int > 0))
        {
            Console.WriteLine("Not a valid number....try again");
        }
        return temp_int;
    }

这是立即使用temp_int变量的正确方法吗??

2 个答案:

答案 0 :(得分:1)

getValidNumber(Console.ReadLine());

...

public int getValidNumber(string input)
{
  int temp_int = int.TryParse(input, out temp_int);
  if (temp_int =< 0)
  {
       Console.WriteLine("Not a valid number....try again");
  }
  return temp_int;
}

答案 1 :(得分:1)

最明显的错误是,如果int大于0,则运行while,这是您不想要的:

//Assign to temp_int first:
int.TryParse(Console.ReadLine(), out temp_int);
while (temp_int < 1)
{
    Console.WriteLine("Not a valid number....try again");
    int.TryParse(Console.ReadLine(), out temp_int);
}