为什么在完成“ if”条件后激活“ else”条件(C#)

时间:2019-10-08 09:59:10

标签: c# if-statement

    Console.WriteLine("Bent u een man of een vrouw?");

    string Geslacht = Console.ReadLine();

    if (Geslacht == "man")
    {
        double Totaal;
        double LengteMan;
        double H = 100;
        double N = 0.9;
        Console.WriteLine("Wat is uw lichaamslengte in cm?");
        LengteMan = Convert.ToInt32(Console.ReadLine());
        Totaal = (LengteMan - H) * N;
        Console.WriteLine("Uw ideale gewicht is " + Totaal + " Kilo");
        Console.ReadKey();
    }
    if (Geslacht == "vrouw")
    {
        Console.WriteLine("TestVrouw");
    }
    else
    {
        Console.WriteLine("error");
    }

完成if条件后,控制台仍输出 "error"。为什么会发生这种情况,我该如何阻止这种情况发生?

3 个答案:

答案 0 :(得分:3)

您正在寻找if ... else if ... else模式:

// Trim - let's be nice and tolerate leading / trailing spaces
string Geslacht = Console.ReadLine().Trim();

if (Geslacht == "man")
{
    // Either "man" (1st valid input)
}
else if (Geslacht == "vrouw")
{
    // Or "vrouw" (2nd valid input)   
}
else
{
    // All the other inputs are wrong ones (error)
} 

答案 1 :(得分:0)

您的语法错误。您使用“ if”代替了if:


if (Geslacht == "man")
    {
        double Totaal;
        double LengteMan;
        double H = 100;
        double N = 0.9;
        Console.WriteLine("Wat is uw lichaamslengte in cm?");
        LengteMan = Convert.ToInt32(Console.ReadLine());
        Totaal = (LengteMan - H) * N;
        Console.WriteLine("Uw ideale gewicht is " + Totaal + " Kilo");
        Console.ReadKey();

    }
    else if (Geslacht == "vrouw")
    {
        Console.WriteLine("TestVrouw");
    }
    else
    {
        Console.WriteLine("error");
    }

答案 2 :(得分:0)

由于您正在比较“ Geslacht”字符串,因此不应写两个if,而必须使用else if代替。

正确的代码是:

Console.WriteLine("Bent u een man of een vrouw?");

    string Geslacht = Console.ReadLine();
    if (Geslacht == "man")
    {
       ....
    }
    else if (Geslacht == "vrouw")
    {
        Console.WriteLine("TestVrouw");
    }
    else
    {
        Console.WriteLine("error");
    }