Оператор уменьшения на 1. Префиксная и постфиксная формы.
Инкремент - это оператор (++), который увеличивает число на 1.
Декремент - это оператор (--), который уменьшает число на 1.
Постфиксный - это означает то, что сначала над переменной делаются какие-то операции и только после всех этих операций, действует оператор инкремента или декремента.
Префиксный - это противоположность постфиксному. Сначала оператор инкремента или декремента увеличивает или уменьшает переменную и только после этого над ним производятся остальные операции, если они есть.
Операторы цикла. Цикл for.
Цикл нужен для многократного повторения набора команд.
Цикл for – цикл со счетчиком, когда тело цикла выполняется от n1до n2с указанным шагом количество раз.
57. Операторwhile с предусловием. Синтаксис оператора. Особенности в выполнении.
оператор цикла с предусловием (начинающийся с ключевого сло-ваwhile) содержит в себе выражение, которое управляет повторным выполнением оператора (который может быть составным оператором). ┌─────┐ ┌─────────┐ ┌──┐ ┌────────┐ оператор ───>│while├──>│выражение├──>│do├──>│оператор├──>while └─────┘ └─────────┘ └──┘ └────────┘ Выражение, с помощью которого осуществляется управление пов-торением оператора, должно иметь булевский тип. Вычисление его производится до того, как внутренний оператор будет выполнен. Внутренний оператор выполнятся повторно до тех пор, пока выраже-ние принимает значение Тruе. Если выражение с самого начала при-нимает значение False, то оператор, содержащийся внутри оператора цикла с предусловием, не выполняется. Примерами операторов цикла с предусловием могут служить сле- дующиеоператоры:while Data[I] <> X do I := I + 1; While I > 0 dobeginif Odd(I) then Z := Z * X;I := I div 2;X :=Sqr(X);end;while not Eof(InFile) dobeginReadln(InFile,Line);Process(Line);end;Особенностью этого цикла является то, что он будет выполнять свою работу до возникновения каких-либо условий, то есть сам он ничего не изменяет в переменных, он всего лишь что-либо проверяет.
Оператор for – бесконечный цикл. Оператор for – пустой цикл.
Для создания бесконечного цикла можно использовать любой оператор цикла, но чаще всего для этого выбирают оператор for. Так как в операторе for может отсутствовать любая секция, бесконечный цикл проще всего сделать, оставив пустыми все секции. Это хорошо показано в следующем примере:
for( ; ; ) printf("Этот цикл крутится бесконечно.\n");
Если условие цикла for отсутствует, то предполагается, что его значение — ИСТИНА. В оператор for можно добавить выражения инициализации и приращения, хотя обычно для создания бесконечного цикла используют конструкцию for( ; ; ).
Как известно, цикл for позволяет повторять один или более операторов программы до тех пор, пока выполняется заданное условие. В прошлом для искусственной задержки выполнения программы, например при выводе сообщения, программисты помещали в нее "ничего не делающий", или пустой цикл. Например, в следующем цикле for - в течение 100 повторений не выполняется никаких действий: for (counter = 1; counter<= 100; counter++);
В таком случае производится инициализация цикла и затем многократно выполняется проверка и увеличение управляющей переменной, пока условие цикла остается истинным. На эти многократные проверки расходуется процессорное время, что и вызывает задержку выполнения программы. Если программе нужна более длительная задержка, то можно изменить условие завершения: for (counter =1; counter<= 10000; counter++);
Цикл while с постусловием. Синтаксис. Различие в выполнении с оператором while с предусловием.
Цикл "while" с постусловием отличается от цикла с предусловием тем, что сначала выполняется блок цикла, а потом проверяется условие. Если условие истинно, то цикл будет выполнен еще раз, и так до тех пор, пока условие будет истинно. Синтаксис цикла с постусловием такой (обратите внимание на обязательную точку с запятой после условия):
do
{
Блок инструкций
}
while (условие);
Поскольку условие проверяется после выполнения тела цикла, то блок цикла с постусловием всегда будет выполнен хотя бы один раз, независимо от истинности условия. Это может привести к ошибкам, поэтому использовать цикл while с постусловием следует только тогда, когда это действительно упрощает алгоритм.
Бесконечные циклы
Как показывает практика, достаточно легко сделать ошибку и невернозадать условие окончания цикла, которое всегда будет истинным, — при этом тело
цикла станет выполняться бесконечно. Подобная ситуация называется зацикливанием. В некоторых случаях программисты специально применяют подобный трюк, чтобы организовать бесконечный цикл, в котором будут приниматься и обрабатываться.
Исключения
Управление порядком выполнения программы может происходить не только с помощью условных ператоров и операторов цикла, но и при возникновении исключений — ситуаций в программе или операционной системе, требующих немедленного реагирования. Например, при выполнении оператора присваивания и вычислении выражения произошло деление на ноль. Программа остановилась, так как не знает, что ей делать дальше, — ведь получено ошибочное значение. Чаще всего выполнение программы просто рекращается по ошибке, но современные системы
разработки позволяют программисту явно контролировать возникновение самых разных исключений (они еще называются исключительными ситуациями, требующими немедленного вмешательства) и указывать, какие операторы следует выполнять при их возникновении.