Давайте в этом разделе поговорим о том, как в зависимости от условия заставить PascalAbc.Net выполнять или не выполнять определённый блок кода.
Начнём с простого. Давайте напишем программу, которая будет на вход получать натуральное число и выводить информацию о том, какое это число: чётное или нечётное.
Разобьём задачу на части:
- Ввести целое число с клавиатуры
- Сохранить это число в переменную
- Если значение переменной кратно двум, то вывести «чётное»
- Если значение переменной не кратно двум, то вывести «нечётное»
Когда вы начинаете решать задачу, то на первых парах лучше всего вот так вот расписывать условия, чтобы лучше понимать, какой код нужно написать.
Начнём писать программу. Во-первых, давайте начнём с «нулевого» этапа, а именно напишем код, который просто должен быть: начало программы и конец программы.
Если вы запустите этот код, то программа ничего не сделает, но по крайней мере стартовая заготовка у нас есть.
Первые два пункта нашего плана объединим, так как это одна строчка кода
Функция ReadInteger позволяет ввести данные с клавиатуры, результат будет записан в переменную x. С этого момента у нас в x целое число.
Теперь мы можем перейти к написанию кода для пункта 3. Вспоминаем, что по-английски если — if.
Конструкция if в базовом варианте записывается как
Да, эту конструкцию можно чуть сократить, но на первых порах прописывайте именно так, то есть с begin и end;
То, что вы напишете между begin и end с точкой с запятой будет выполнено. Пример.
На скриншоте выше показано, что если запустить программу и ввести 11, то программа выводит текст из четвёртой строчки программы. Попробуйте запустить программу и ввести, например, 5, условие из строчки 3 будет ложным, следовательно четвёртая строчка не будет выполнена, никакого вывода не будет.
Теперь наконец давайте опишем, что будет происходить, если пользователь введёт число равное 10 или меньше. В программе выше, ничего не произойдёт.
Чтобы у нас появилось альтернативное условие, воспользуемся оператором else (c англ. иначе).
Наберите эту программу и убедитесь, что теперь вне зависимости от того, какое число вы введёте, текст будет выведен.
Внимание! посмотрите на end в пятой строчке. Если после end следует else, то точку с запятой ставить нельзя!
Два условия в одном if
Давайте усложним предыдущую программу. Теперь мы будем проверять, больше ли введённое пользователем число 10 и кратно ли оно. Ниже представлена эта программа.
Тут сразу несколько новых конструкций. Во-первых в третьей строчки мы внутри одного if описали два условия. Первое x > 10 понятно, а вот второе x mod 2 = 0 требует пояснений.
Что значит число чётное? Это значит, что число делится на 2 без остатка, или другими словами остаток от деления на 2 у такого числа равен нулю. В языке Pascal Abc.Net оператор mod как раз и позволяет найти остаток от деления числа на какое-то число.
То есть выражение x mod 2 = 0 означает, правда ли остаток от деления на равен 0. Одно равно означает проверку на равенство.
Важно помнить, что когда вы хотите несколько условий поместить в один if, то следует каждое из условий поместить в круглые скобки.
Между условиями необходимо ставить связку, например, and (и) или or (или).