C# int.Parse无法使用字符串值(System.FormatException:输入字符串的格式不正确)
如果用户输入了除数字以外的任何内容,则“我得到未处理的异常”: System.FormatException:输入字符串的格式不正确 有人能解释一下我做错了什么吗 这是我的代码C#.NET:C# int.Parse无法使用字符串值(System.FormatException:输入字符串的格式不正确),c#,.net,C#,.net,如果用户输入了除数字以外的任何内容,则“我得到未处理的异常”: System.FormatException:输入字符串的格式不正确 有人能解释一下我做错了什么吗 这是我的代码C#.NET: private静态int-WeightIFeMale() { Console.WriteLine(“你体重多少?”,Environment.NewLine); int femalewweight=int.Parse(Console.ReadLine()); 如果 (0>=女性体重和&80=女性体重和&110
private静态int-WeightIFeMale()
{
Console.WriteLine(“你体重多少?”,Environment.NewLine);
int femalewweight=int.Parse(Console.ReadLine());
如果
(0>=女性体重和&80=女性体重和&110=女性体重和&140=女性体重和&160=女性体重和&200=女性体重和&240=女性体重和&999=1000)
{
WriteLine(“绝对不可能让你重{0}磅,所以停下来吧!”,femaleweaght,Environment.NewLine);
}
其他的
{
Write(“什么是****{0}必须是一个数字,让我们再试一次!”,Environment.NewLine);
WeightIFeMale();
}
回归女性体重;
}
因为int femalewweight=int.Parse(Console.ReadLine())代码>
int.Parse
如果输入无法转换为整数,则方法将抛出FormatException
。当您提供的值看起来不像是数字值int时,这里的Parse()无法将其解析为int。请参阅本文和异常表的描述。因此,1。最好您有一个尝试捕捉功能。试试下面的建议,它是有效的。2.也可以使用int.TryParse方法
int femaleWeight;
if (!int.TryParse(Console.ReadLine(), out femaleWeight)) {
Console.WriteLine("Please enter your weight in US pounds")
}
else if (...)
方式1。删除此语句int femalewweight=int.Parse(Console.ReadLine())代码>包含try-catch语句的代码
private static int WeightIFeMale()
{
Console.WriteLine("How Much Do You Weigh?", Environment.NewLine);
//int femaleWeight = int.Parse(Console.ReadLine());
string weigt_st = Console.ReadLine();
int femaleWeight = 0;
try
{
femaleWeight = int.Parse(weigt_st);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
if (0 >= femaleWeight && 80 <= femaleWeight)
{
Console.WriteLine("Damn, how much crack are you smoking?", Environment.NewLine);
}
else if (81 >= femaleWeight && 110 <= femaleWeight)
{
Console.WriteLine("What the ****, are you a midget *****?", Environment.NewLine);
}
else if (111 >= femaleWeight && 140 <= femaleWeight)
{
Console.WriteLine("Holy shit, I have some protein bar coupons you can have!", Environment.NewLine);
}
else if (141 >= femaleWeight && 160 <= femaleWeight)
{
Console.WriteLine("Bro you need to hit the Gym, ASAP!", Environment.NewLine);
}
else if (161 >= femaleWeight && 200 <= femaleWeight)
{
Console.WriteLine("Really!!!, can I hit the Gym with you?", Environment.NewLine);
}
else if
(201 >= femaleWeight && 240 <= femaleWeight)
{
Console.WriteLine("Do you Have a small ****, Steroids are a mother @#$%^&&", Environment.NewLine);
}
else if
(241 >= femaleWeight && 999 <= femaleWeight)
{
Console.WriteLine("My condolences!", Environment.NewLine);
}
else if
(femaleWeight >= 1000)
{
Console.WriteLine("There is absolutely no way that you weigh {0} lbs, so stop ******* around!", femaleWeight, Environment.NewLine);
}
else
{
Console.Write("What the **** is {0} It has to be a number numb nuts, lets try that again!", Environment.NewLine);
WeightIFeMale();
}
return femaleWeight;
}
这就是它对我的作用:
私有静态int-WeightIFeMale()
{
Console.WriteLine(“你体重多少?”,Environment.NewLine);
}
女性体重;
if(!int.TryParse(Console.ReadLine(),out femalewweight))//我删除了else语句。
{
Write(“什么是****{0}必须是一个数字,让我们再试一次!”,Environment.NewLine);
Console.Write(Environment.NewLine);
WeightIFeMale();
}
否则如果
(femaleWeight>=0&&femaleWeight=81&&femaleWeight=111&&femaleWeight=141&&femaleWeight=161&&femaleWeight=201&&femaleWeight=241&&femaleWeight=1000)
{
WriteLine(“绝对不可能让你重{0}磅,所以停下来吧!”,femaleweaght,Environment.NewLine);
}
您需要明确输入的数据,以及调用的更广泛上下文(之前输入的内容、调用的方式等)int.Parse(Console.ReadLine())代码>=>输入必须是数字才能成功解析,否则会引发错误。考虑使用<代码> In。TyPARSE < /C>。回答很好,但是有人投了反对票。谢谢你的意见!
private static int WeightIFeMale()
{
Console.WriteLine("How Much Do You Weigh?", Environment.NewLine);
//int femaleWeight = int.Parse(Console.ReadLine());
string weigt_st = Console.ReadLine();
int femaleWeight = 0;
try
{
femaleWeight = int.Parse(weigt_st);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
if (0 >= femaleWeight && 80 <= femaleWeight)
{
Console.WriteLine("Damn, how much crack are you smoking?", Environment.NewLine);
}
else if (81 >= femaleWeight && 110 <= femaleWeight)
{
Console.WriteLine("What the ****, are you a midget *****?", Environment.NewLine);
}
else if (111 >= femaleWeight && 140 <= femaleWeight)
{
Console.WriteLine("Holy shit, I have some protein bar coupons you can have!", Environment.NewLine);
}
else if (141 >= femaleWeight && 160 <= femaleWeight)
{
Console.WriteLine("Bro you need to hit the Gym, ASAP!", Environment.NewLine);
}
else if (161 >= femaleWeight && 200 <= femaleWeight)
{
Console.WriteLine("Really!!!, can I hit the Gym with you?", Environment.NewLine);
}
else if
(201 >= femaleWeight && 240 <= femaleWeight)
{
Console.WriteLine("Do you Have a small ****, Steroids are a mother @#$%^&&", Environment.NewLine);
}
else if
(241 >= femaleWeight && 999 <= femaleWeight)
{
Console.WriteLine("My condolences!", Environment.NewLine);
}
else if
(femaleWeight >= 1000)
{
Console.WriteLine("There is absolutely no way that you weigh {0} lbs, so stop ******* around!", femaleWeight, Environment.NewLine);
}
else
{
Console.Write("What the **** is {0} It has to be a number numb nuts, lets try that again!", Environment.NewLine);
WeightIFeMale();
}
return femaleWeight;
}
int femaleWeight = 0;
int.TryParse(Console.ReadLine(), out femaleWeight);
This is how it worked for me:
private static int WeightIFeMale()
{
Console.WriteLine("How Much Do You Weigh?", Environment.NewLine);
}
int femaleWeight;
if (!int.TryParse(Console.ReadLine(), out femaleWeight)) //I deleted the else statement.
{
Console.Write("What the **** is {0} It has to be a number numb nuts, lets try that again!", Environment.NewLine);
Console.Write(Environment.NewLine);
WeightIFeMale();
}
else if
(femaleWeight >= 0 && femaleWeight <= 80)
{
Console.WriteLine("Damn, how much crack are you smoking?", Environment.NewLine);
}
else if
(femaleWeight >= 81 && femaleWeight <= 110)
{
Console.WriteLine("What the ****, are you a midget *****?", Environment.NewLine);
}
else if
(femaleWeight >= 111 && femaleWeight <= 140)
{
Console.WriteLine("Holy ***, I have some protein bar coupons you can have!", Environment.NewLine);
}
else if
(femaleWeight >= 141 && femaleWeight <= 160)
{
Console.WriteLine("Bro you need to hit the Gym, ASAP!", Environment.NewLine);
}
else if
(femaleWeight >= 161 && femaleWeight <= 200)
{
Console.WriteLine("Really!!!, can I hit the Gym with you?", Environment.NewLine);
}
else if
(femaleWeight >= 201 && femaleWeight <= 240)
{
Console.WriteLine("Do you Have a small ****, Steroids are a mother @#$%^&&", Environment.NewLine);
}
else if
(femaleWeight >= 241 && femaleWeight <= 999)
{
Console.WriteLine("My condolences!", Environment.NewLine);
}
else if
(femaleWeight >= 1000)
{
Console.WriteLine("There is absolutely no way that you weigh {0} lbs, so stop ******* around!", femaleWeight, Environment.NewLine);
}