Найти в Дзене

Вложенные операторы If в Pascal

Оглавление
Программист точно пишет на Паскале
Программист точно пишет на Паскале

Добрый день, товарищи! в сегодняшней публикации мы снова окунемся в конструкцию If, но на этот раз в ее более сложный вариант исполнения. Мы разберем не задачу, а пример программы, демонстрирующий работу оператора выбора в Pascal.

1. Пример кода и листинг

Так выглядит наш сегодняшний пример
Так выглядит наш сегодняшний пример

Для того, чтобы вы могли попробовать работу этого кода я дам листинг(программистский термин, если коротко - то это просто код программы), пожалуйста скопируйте его в свое приложение Паскаля.

var a,b:integer;
begin
write('Первое число: ');
read(a);
write('Второе число: ');
read(b);
if (a < 10) and (b > 10) then
begin
if (a < 5) or (b > 15) then
writeln('Вариант 1. a < 5 ИЛИ b > 15')
else
writeln('Вариант 2. a < 10 И b > 10');
end
else
begin
if (a = b) or ((a > 10) and (b < 10)) then
writeln('Вариант 3. а = b ИЛИ (а > 10 И b < 10)')
else
writeln('Вариант 4. (а < 10 И b < 10) ИЛИ (а > 10 И b > 10) И (a ≠ b)');
end;
end.

Уже на скриншоте видно, что структура кода несколько сложнее наших предыдущих программ. Это не страшно, в коде не так сложно разобраться, и сейчас я поясню о нем более подробно.

2. Разбираемся, что происходит

Подразумевается, что код уже у вас перед глазами)

Объявляем две переменные, пользователь вводит их. А вот далее начинаются условия. Эта программа состоит из главного If а так же вложенного условия, давайте посмотрим, как программа будет работать.

Первые два варианта
Первые два варианта

Здесь мы задаем условие для введенных пользователем чисел. Предположим он вводит 3 и 14. Первая конструкция If выполняется, так как 3 меньше 10 И 14 больше 10.

Смотрим дальше - a у нас равняется 3, 3 меньше 5, условие верно. Но b равна 14, а это меньше 15. Вывод - условие не выполняется, так? Нет, не так. В этих конструкциях присутствуют логические операции И и ИЛИ, и если в первом случае необходимо, чтобы верны были оба условия первого If'a, в случае же операции ИЛИ необходимо чтобы хотя бы одно условие выполнялось, что и делает (b > 15).

Вариант первый. а = 3, b = 14
Вариант первый. а = 3, b = 14

Синтаксические условности, такие как begin ... end внутри Ифа, отсутствие точки с запятой перед else и условия конструкции, экранированные скобками разбирались в предыдущих статьях об операторе If, поэтому сейчас останавливаться на них я не буду. Вот ссылка на предыдущую статью, где подробнее написано об этом:

Продолжаем изучать конструкцию If в Pascal

Если же второе условие не выполнится - нам выпадет второй вариант развития событий.

Например, если a = 6, b = 14
Например, если a = 6, b = 14

3. Вторая часть - else

Вторые два варианта
Вторые два варианта

Если наш главный If оказался ложным - в дело вступает оператор else.

Первое условие будет выполнено, если а будет равно b:

a = 4 и b = 4
a = 4 и b = 4

Или, если а окажется больше 10, а b окажется меньше 10:

На этот раз a = 14, b = 3
На этот раз a = 14, b = 3

И, наконец, если все предыдущие условия будут ошибочны нам выпадет последний, четвертый вариант:

Последний вариант, когда a = 11, b = 12
Последний вариант, когда a = 11, b = 12

Наши значения не равны друг другу, а так же оба больше чем 10, поэтому все что нам остается - вариант 4.

Думаю на этом пора заканчивать, надеюсь вы сами поэкспериментировали с предложенным кодом и нашли что-нибудь интересное. Если объяснения работы кода не совсем понятны - обратитесь в комментарии по этому поводу, пожалуйста. Буду рад, если статья оказалась полезной.

Вот примерно так будет выглядеть мозг после обработки сегодняшней информации
Вот примерно так будет выглядеть мозг после обработки сегодняшней информации

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

По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!

Доброго вам всем здоровьица в эти трудные времена!