Оператор;. Операторы, находящиеся между фигурными скобками, называются телом цикла.
}
Операторы, находящиеся между фигурными скобками, называются телом цикла.
Внимание!Условие всегда заключается в скобки и после него точка с запятой не ставится!
Если поставить точку с запятой после условия, то этот цикл, как правило, превращается в бесконечный, потому что в этом случае условие изменяться не будет.
Фигурные скобки используются в том случае, если после условия должна следовать цепочка операторов.
Действия оператора while:
1. проверяется выполнение условия,
2. если оно истинно, то выполняется оператор (цепочка), стоящий после него,
3. после его выполнения снова проверяется условие, и если оно снова истинно, то цикл повторяется,
4. если условие становится ложным, то цикл заканчивает работу.
Примеры:
1. вычислить сумму ста первых натуральных чисел:
s = 1 + 2 + 3 + … + 98 + 99 + 100
Пусть s – искомая сумма,
i – очередное число (изменяется от 1 до 100).
Тогда алгоритм решения задачи можно описать следующим образом:
a. обнуляем сумму s = 0,
b. берем первое число: i = 1,
c. добавляем в сумму это число: s = s + i,
d. увеличиваем очередное число на единицу: i = i+ 1,
e. если оно не больше 100, то снова добавляем его в сумму и повторяем цикл.
Представим этот алгоритм так:
s = 0;
i = 1;
ПОКА (i ≤ 100)
НАЧАЛО
s = s + i;
i = i + 1;
КОНЕЦ;
Программа:
$i = 1;
$s = 0;
while ($i <= 100)
{
$s += $i;
$i++;
}
echo “<BR>s = $s i = $i<BR>”;
Результат решения задачи:
s = 5050 i = 101
Таким образом, выходим из этого цикла со значением i не 100, а 101.
Вместо цепочки:
$s += $i;
$i++;
можно использовать один оператор:
$s += $i++;
Этот цикл можно превратить в бесконечный, если после условия поставить точку с запятой:
$i = 1;
$s = 0;
while ($i <= 100);
{
$s += $i;
$i++;
}
echo “<BR>s = $s i = $i<BR>”;
Значение переменной $i в этом случае меняться не будет – она останется равной единице.
2. вычислить сумму s всех цифр заданного натурального числа n
Пусть s – искомая сумма,
i – очередная цифра числа.
Тогда алгоритм решения задачи можно описать следующим образом:
1. обнуляем сумму s=0,
2. берем последнюю цифру числа, для чего определяем остаток от деления исходного числа на 10: i = n % 10,
3. добавляем в сумму найденную цифру: s = s + i,
4. уменьшаем число в 10 раз: n = n / 10,
5. повторяем цикл до тех пор, пока n > 0 – это и будет условием продолжения цикла.
Программа:
$s = 0;
$n = 12345;
while ($n > 0)
{
$i = $n % 10;
$s += $i;
$n /= 10;
}
echo “<BR>s = $s”;
3. ввести с клавиатуры по одному последовательность целых чисел (конец последовательности – число 0). Определить их сумму, максимальное и минимальное число, количество введенных чисел и их среднее арифметическое.
Пусть s – искомая сумма,
min, max – минимальное и максимальное из введенных чисел,
count – количество введенных чисел,
sred – среднее арифметическое,
n – очередное число.
Тогда алгоритм решения задачи можно описать следующим образом:
1. обнуляем сумму s = 0,
2. вводим первое число n,
3. если оно не равно нулю, то
4. принимаем его значение за min и max
5. количество введенных чисел count = 1
6. увеличиваем сумму на введенное число s = s + n
7. входим в цикл ввода:
8. вводим очередное число n,
9. если оно не равно нулю, то
10. количество введенных чисел увеличиваем на 1: count = count+1
11. увеличиваем сумму на введенное число s = s + n
12. если оно меньше min, то min = n,
13. если оно больше max, то max = n,
14. повторяем цикл до тех пор, пока n # 0 – это и будет условием продолжения цикла.
Создадим интерфейс этой задачи – взаимодействие программы с пользователем, то есть что должно выводиться на экран:
Первое число: 3
Очередное число: 8
Очередное число: 1
Очередное число: -2
Очередное число: 0
Сумма = 10
Количество чисел = 4
min = -2
max = 8
Среднее арифметическое = 2.50
Схема алгоритма:
Программа:
$count = 0;
$s = 0.0;
echo “<BR>Введите первое число:”;
// ввод $n
if ($n==0)
Дата добавления: 2015-08-26; просмотров: 579;