Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# int.Parse无法使用字符串值(System.FormatException:输入字符串的格式不正确)_C#_.net - Fatal编程技术网

C# int.Parse无法使用字符串值(System.FormatException:输入字符串的格式不正确)

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

如果用户输入了除数字以外的任何内容,则“我得到未处理的异常”:

System.FormatException:输入字符串的格式不正确

有人能解释一下我做错了什么吗

这是我的代码C#.NET:

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);
    }