Почему мое условие "else" активируется после выполнения условия "if" (C #) - PullRequest
0 голосов
/ 08 октября 2019
    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 ]

3 голосов
/ 08 октября 2019

Вы ищете 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)
} 
0 голосов
/ 08 октября 2019

Поскольку вы сравниваете строку "Geslacht", вы не должны писать два if, вы должны использовать else if вместо 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");
    }
0 голосов
/ 08 октября 2019

Ваш синтаксис неправильный. Вы использовали "if" вместо else 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");
    }

...