Расширенная форма и вложения оператора if. Синтаксис C#
Продолжаем изучать базовую структуру — ветвление. Классическая форма конструкции с оператором условного перехода — if, применяется в задачах, где одно логическое выражение направляет ход выполнение программы по одному из двух предопределенных путей.
Но мир задач намного разнообразней и зачастую одному условию соответствует выбор из множества путей.
Но мир задач намного разнообразней и зачастую одному условию соответствует выбор из множества путей. Для решения таких задач используется расширенная форма конструкции с оператором условного перехода «if» вида — if…else if…else.
Напишем программу сравнения двух чисел, где единственным условием является сравнение чисел, но используется при этом в трех вариациях.
static void Main(string[] args)
{
int a = 2;
int b = 2;
if (a < b)
{
Console.WriteLine("A меньше B");
}
else if (a > b)
{
Console.WriteLine("A больше B");
}
else
{
Console.WriteLine("Значения переменных равны");
}
}
В противовес «одно условие, множество путей» существуют задачи, где один путь зависит от выполнения нескольких взаимосвязанных условий. Для решения таких задач используются, вложенные друг в друга, конструкции с классической формой if…else.
Напишем код проверяющий логин и пароль, где доступ разрешен только после проверки пароля. Пароль в свою очередь проверяется, только после получения результата «истинность» проверки логина.
Допустим, что логин состоит из символов— 123, а пароль —456.
static void Main(string[] args)
{
string login = "123";
string password = "456";
Console.WriteLine("Введите логин");
string loginIn = Console.ReadLine();
if (loginIn == login)
{
Console.WriteLine("Введите пароль");
string passwordIn = Console.ReadLine();
if(passwordIn == password)
{
Console.WriteLine("Доступ разрешен");
}
else
{
Console.WriteLine("Пароль не верен");
}
}
else
{
Console.WriteLine("Логин не верен");
}
}
Здесь, в строке if (loginIn == login) происходит вычисление операции отношения между оригиналом и введенным значением пароля. В случае результата true, управление программой переходит конструкции ветвления с проверкой пароля, в случае false, блок else выводит сообщение «Логин не верен».
Если проверка логина прошла успешно, управление программой передается блоку проверки пароля.
Вложенность операций позволяет сделать сколько угодно вложений, как в блок истинности условного оператора, так и в его блок ложности.
Напишем программу проверки, будет ли гражданин призван на срочную службу. Оценим это по следующим признакам. Возраст от 18 до 30 лет. Количество детей менее двух.
static void Main(string[] args)
{
string message = "Гражданин не будет призван на срочную службу";
Console.WriteLine("Введите возраст гражданина");
byte age = byte.Parse(Console.ReadLine());
if (age >= 18)
{
if (age < 30)
{
Console.WriteLine("Введите количество детей");
byte children = byte.Parse(Console.ReadLine());
if (children < 2)
{
Console.WriteLine("Гражданин будет призван на срочную службу");
}
else
{
Console.WriteLine(message + ". Дети");
}
}
else
{
Console.WriteLine(message + ". Старше 30");
}
}
else
{
Console.WriteLine(message + ". Моложе 18");
}
Применение расширенной версии конструкции ветвления, а также вложенности классической формы применяются при создании информативного кода, когда код либо выполняется, либо программа информирует о невозможности выполнить операцию.
В заключении.
Для решения задач с независящими друг от друга условиями, применяйте расширенную форму if … else if … else, которую можно представить, как нумерованный список.
вложенные друг в друга, конструкции с классической формой if…else.
Для решения задач с зависящими условиями, применяйте вложенные друг в друга, конструкции с классической формой if…else. Можно представить, как нумерованный список с подпунктами.
На этом занятие закончено.
Вы можете самостоятельно найти задачи для закрепления теоретического материала или для получения задач с ответами отправьте письмо на basicprog@mail.ru
Удачи в выполнении практических заданий!