Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Цикл do-while

Конструкция цикла:


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);

Мы объединили декремент счётчика и сравнение с нулём в одном выражении. Программа работает следующим образом. Вначале она выполняет операцию уменьшения на единицу и возвращая новое значение счётчика. Затем сравнивается значение с нулём. Если оно больше нуля, выполнение цикла продолжается. В противном случае цикл прерывается.

Реклама