好吧,小问题。我知道。基本反应可能是
Convert.ToInt32(string);
但是自然地,C#会执行所有自然过程以确保不会发生这种情况。
这是我的代码:
while (true)
{
while (true)
{
//ask for time
Console.WriteLine("What is the hour?");
Console.WriteLine();
string s = Console.ReadLine();
//convert input to int
YourTime.nHour = Convert.ToInt32(s);
//check to see if it's legal
if ((YourTime.nHour <= 12) || (YourTime.nHour > 0))
{
break;
}
//etc etc code
}
}
我想确保输入的是实际小时。当我运行此代码时,即使我输入了-13或99之类的信息,它也始终将if()语句标记为“ true”并中断。
我敢肯定有一个简单的替代“ Convert.ToInt32(s);”,但是说实话,似乎我已经尝试了一切。我认为最好遵循知道手头代码的人的逐步说明。
[编辑]-错误的运算符,而不是转换。感谢所有提供帮助的人!
最佳答案
是您的if语句无效,而不是Convert.ToInt32if ((YourTime.nHour <= 12) || (YourTime.nHour > 0))
将始终为真。我想你打算做if ((YourTime.nHour <= 12) && (YourTime.nHour > 0))