1.8.1. Оператор while
Синтаксическая запись оператора while выглядит следующим образом:
while (условие)
{
// действия
}
Также имеет место выполнение определенного предусловия, но в отличие от оператора
if/else, данная конструкция построена на циклах проверки условия. Когда программа доходит до оператора
while, если предложенное условие истинно, происходит выполнение всех действий в блоке из фигурных скобок
{...}. После выполнения этих действий, снова происходит очередная проверка условий после оператора
whilе и если условие опять истинно, происходит повторное выполнение действий в блоке. Действия в блоке выполняются до тех пор, пока условие не станет ложным, тогда происходит выход из цикла
while. В основном все циклы управляются при помощи так называемых счетчиков. Рассмотрим не большой пример:
int i = 0;
while (i < 10)
{
// действия
i + +;
}
Сначала переменной i присваивается значение 0, далее происходит проверка условия i<10, если переменная i меньше цифры 10, выполняются все действия в блоке цикла. В конце блока переменная i увеличивается на
1и вновь проверяется условие в цикле. И так ровно десять, раз для нашего примера. Переменная
i служит счетчиком для цикла while. Отсутствие операции по увеличению переменной
i на единицу приведет к бесконечному циклу, поскольку 0 всегда будет меньше десяти. В циклах так же можно использовать оператор декремента, например:
int. i = 10;
while (i>0)
{
// действия i --;
}
Те же действия, но уже в обратную сторону. Но все-таки чаще всего используется оператор декремента.
В цикле while имеется возможность использования булевых переменных, содержащих значения
false или true. После оператора while происходит проверка предусловия, то можно воспользоваться булевой переменной, например:
boolean i = true,
while (i)
{
// действия
}
Переменная i истинна, ей присвоено значение true, поэтому происходит выполнение цикла
whilе. Единственное о чем необходимо позаботиться - это о выходе из такого цикла, поскольку переменная i истинна, то цикл
while будет выполняться бесконечно и такие циклы носят названия бесконечных циклов.
Напоследок хочу еще обратить ваше внимание на оператор равно ==. Если записать цикл таким образом:
int i = 0
while (i = = 5)
{
// действия
i + +;
}
То получится вполне работоспособный цикл, а вот если вы ошибетесь или по
привычке воспользуетесь классическим вариантом оператора равно =, использующимся в математике, то у вас будет проблема в виде бесконечного цикла.
int i =0
while (i = 5)
{
// действия
i++;
}
В предусловии происходит присвоение переменной i значения 5, а оттого, что это действие не запрещено, то произойдет выполнение блока цикла. В конце которого значение i увеличится на один, но в предусловии после оператора while, переменной i новь будет присвоено значение пять - это пример простого бесконечного цикла и как следствие, классическая ошибка, случающаяся с начинающими программистами.
|