Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Конструкция цикла:
do
// команда (тело цикла)
while(условие-логическое выражение)
Отличие цикла do-while от цикла while состоит в том, что цикл do-while выполняется по крайней мере один раз, даже если условие изначально ложно. В цикле while такое не произойдёт, так как тело цикла не отработается. Цикл do-while используется реже, чем while.
Бывают ситуации, когда проверку прерывания цикла желательно выполнять в конце цикла, а не в его начале. И данный цикл позволяет это сделать. При каждом повторении цикла do-while программа сначала выполняет тело цикла, а затем вычисляет условное выражение. Если это выражение истинно, то цикл повторяется. В противном случае выполнение цикла прерывается. Как и в других циклах Java, условие должно иметь булево значение.
Перепишем пример из урока по циклу while на новый лад с использованием цикла do-while:
int counter = 10;
do {
mInfoTextView.append("Осталось " + counter + " сек.\n");
counter--;
} while (counter > 0);
Если теперь изменить условие counter < 0, то цикл отработает один раз и выведет одну строку:
Осталось 10 сек.
Пример можно переписать следующим образом:
int counter = 10;
do {
mInfoTextView.append("Осталось " + counter + " сек.\n");
} while (--counter > 0);
Мы объединили декремент счётчика и сравнение с нулём в одном выражении. Программа работает следующим образом. Вначале она выполняет операцию уменьшения на единицу и возвращая новое значение счётчика. Затем сравнивается значение с нулём. Если оно больше нуля, выполнение цикла продолжается. В противном случае цикл прерывается.