Такой цикл повторяется до тех пор, пока условие истинно. Выполнение цикла заканчивается, если операторы цепочки изменяют значения переменных, входящих в условие, и оно становится ложным.
В любом случае этот цикл выполняется хотя бы один раз. Цикл с постусловием превращается в бесконечный, если условие подобрано так, что оно всегда истинно.
Таким образом, условие в данном цикле является условием его продолжения, как и в цикле с предусловием.
В Java цикл с постусловием реализован оператором цикла do:
{
}
где do – служебное слово выполнять,
while – служебное слово пока.
Внимание! После слова do точка с запятой не ставится!
Перед закрывающей фигурной скобкой }поставить точку с запятой!
Действия оператора do:
1. выполняется оператор (цепочка),
2. проверяется выполнение условия, стоящего после слова while,
3. если оно истинно, то цикл повторяется,
4. если условие становится ложным, то цикл заканчивает работу.
Примеры:
1. вычислить сумму ста первых натуральных чисел:
Пусть s – искомая сумма,
i – очередное число (изменяется от 1 до 100).
Тогда алгоритм решения задачи можно описать следующим образом:
a. обнуляем сумму s = 0 ,
b. берем первое число: i = 1,
c. добавляем в сумму очередное число s = s + i,
d. как только очередное число станет больше ста, цикл заканчивает работу.
Представим этот алгоритм так:
s = 0;
s = s + i;
i = i + 1;
ПОКА (i <= 100);
Программа:
int i=1, s=0;
{
}
while (i <= 100);
System.out.printf(“/ns=%d i=%d”,s, i);
Результат решения задачи:
s=5050 i=101
Второй вариант решения задачи:
s+=i++;
while (i <= 100);
2. вычислить сумму s всех цифр заданного натурального числа n
Пусть s – искомая сумма,
i – очередная цифра числа.
Тогда алгоритм решения задачи можно описать следующим образом:
1. обнуляем сумму s = 0 ,
2. берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,
3. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности – число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.
Пусть s – искомая сумма,
min, max – минимальное и максимальное из введенных чисел,
count – количество введенных чисел,
sred – среднее арифметическое,
n – очередное число.
Тогда алгоритм решения задачи можно описать следующим образом:
a. обнуляем сумму s = 0,
b. вводим первое число n,
c. если оно не равно нулю, то
· принимаем его значение за min и max
· количество введенных чисел count = 1
· увеличиваем сумму на введенное число s = s + n
· входим в цикл ввода:
d. вводим очередное число n,
если оно не равно нулю, то
· количество введенных чисел увеличиваем на 1: count = count+1
· увеличиваем сумму на введенное число s = s + n
· если оно меньше min, то min = n,
· если оно больше max, то max = n,
e. повторяем цикл до тех пор, пока n # 0 – это и будет условием продолжения цикла.
Создадим интерфейс этой задачи – взаимодействие программы с пользователем, то есть что должно выводиться на экран: