我在使用c#中的类型时遇到问题。我在控制台应用程序上有一个int输入,我希望将(非数字字符)字符串输入放回到我现有的但没有图像的do while循环中,就像错误一样。我不想将非数字字符串值转换为int,而是希望保护我的对象不会崩溃,并在呈现不可接受的值(即字母字符串值)时将其返回到循环的开头。例如:
Console.WriteLine("Please input an odd number:");
int input1 = int.Parse(Console.ReadLine());
if (input1 % 2 == 0)
{
Console.WriteLine("Please input an odd number.");
//is even
}
else
{
TotalOdd = TotalOdd + input1;
TotalNumeral++;
Console.WriteLine("Accepted.");
//is odd
}
我希望将字符串输入视为“偶数”数字。我知道这似乎是一个业余的错误,但我实际上不知所措......任何帮助都表示赞赏。
答案 0 :(得分:2)
我通常在这些情况下使用class ServiceCleintExtension implements IGlobalExtension {
@Autowired
ServiceCLient client
@Override
void start() {
client.execute()
}
...
}
,只是为了确保输入的数字是有效整数。如果转换成功,此方法将返回int.TryParse()
,并采用true
out参数,如果成功,将设置为整数值。然后你可以在上面的答案中添加史蒂夫的支票:
int
答案 1 :(得分:1)
用户输入始终以字符串形式接收,您无法避免这种情况,因为用户可以键入键盘可以写入的任何内容。所以你必须像你一样解析它,但你错过了两个错误:
所以你只需要在代码中添加以下内容:
[a-zA-Z0-9@-]
你也可以使用int.TryParse,它们给出相同的结果。检查此问题What is better: int.TryParse or try { int.Parse() } catch
答案 2 :(得分:0)
以下代码将循环,直到输入奇数,然后input1将保持奇数值;
3