如何检查输入的数字是否大于零?

时间:2019-05-12 13:07:14

标签: c#

我以此方式尝试过,但它忽略了第二部分。如何检查输入是否也超过零?我的代码:

static int err()
{
      int rtn;

      while(!int.TryParse(Console.ReadLine(), out rtn) & !(rtn > 0))
      {
            Console.WriteLine("Errormessage");
      }
      return rtn;
}

2 个答案:

答案 0 :(得分:2)

您错误地使用了按位AND运算符。但是,这也不是您想要的。 (请参见下面的注释。)将条件更改为逻辑或:

while(!int.TryParse(Console.ReadLine(), out rtn) || !(rtn > 0))
// ----------------------------------------------^^

请参阅:

答案 1 :(得分:1)

& operator是按位逻辑AND运算符。您需要使用逻辑“与”的&& operator

while(!int.TryParse(Console.ReadLine(), out rtn) && !(rtn > 0))
{
      Console.WriteLine("Errormessage");
}

如果给出错误消息的逻辑是“如果它是一个数字且大于零”,则可以将其更改为;

while(int.TryParse(Console.ReadLine(), out rtn) && (rtn > 0))
{
    Console.WriteLine("Errormessage");
}

如果给出错误消息的逻辑是“如果它是一个数字且小于或等于零”,则可以将其更改为;

while(int.TryParse(Console.ReadLine(), out rtn) && (rtn <= 0))
{
    Console.WriteLine("Errormessage");
}

请注意,&&运算符具有short-circuit evaluation,这意味着它不会对第二个操作数进行求值,因为if第一个操作数为false