我以此方式尝试过,但它忽略了第二部分。如何检查输入是否也超过零?我的代码:
static int err()
{
int rtn;
while(!int.TryParse(Console.ReadLine(), out rtn) & !(rtn > 0))
{
Console.WriteLine("Errormessage");
}
return rtn;
}
答案 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
。>