Только начал работать с C#

почему когда просит вписать возраст, и я пишу меньше 16, не активируется else? Вот код:

System.Console.WriteLine("Your name:");
string user_name = Console.ReadLine();
if (user_name == "Ilya" || user_name == "ilya"){
    System.Console.WriteLine("Recognized you, let in");
    System.Console.WriteLine("Write your age");
    short age = Convert.ToInt16(Console.ReadLine());
    if (age >=16){
        System.Console.WriteLine("Write one-time code");
    }
    short code = Convert.ToInt16(Console.ReadLine());
     if (code == 207){
        System.Console.WriteLine("Let you in");
    }
} else {
    System.Console.WriteLine("I dont know you");
}

Ответы (1 шт):

Автор решения: S.H.

Потому, что у Вас блок else находится "на уровень выше", чем тот if, в котором Вы анализируете возраст.

То есть, в том коде, который сейчас в вопросе, блок else есть только на последнее условие. Просто есть лишние закрывающие скобки.

У меня впечатление, что Вас губят две вещи: неаккуратное форматирование и расстановка скобок то ли вручную, то ли по какому то руководству, которое Вас неправильно учит.

Если Вы хотите, чтобы у условия "мне больше (или равно) 16 лет" была "ветка альтернативной реальности" (проще говоря, блок else) - то Вам надо исправить код примерно так:

    System.Console.WriteLine("Your name:");
    string user_name = Console.ReadLine();
    if (user_name == "Ilya" || user_name == "ilya")
    {
        System.Console.WriteLine("Recognized you, let in");
        System.Console.WriteLine("Write your age");
        short age = Convert.ToInt16(Console.ReadLine());
        if (age >=16)
        {
            System.Console.WriteLine("Write one-time code");
        }
        else
        {
          // это и есть нужный else
        }
    }
    
    short code = Convert.ToInt16(Console.ReadLine());
    
    if (code == 207) 
    {
            System.Console.WriteLine("Let you in");
    } 
    else 
    {
        System.Console.WriteLine("I dont know you");
    }

Обратите внимание:

  1. каждый блок кода внутри скобок - сдвинут вправо, поэтому чётко выделяется

  2. открывающие и закрывающие скобки расположены друг под другом - то есть, видно, что "у вот этой открывающей скобки закрывающая сестра - вот она, на 6 строк ниже"

Попробуйте писать так, пока не набъете руку. После этого можете писать как угодно, вплоть до страшного суда (где, говорят, программистов судят как раз по стилю оформления кода)

→ Ссылка