На этом шаге мы рассмотрим синтаксис и применение оператора while.
Цикл while относится к циклам с неизвестным числом повторений. Его общий вид:
while (<условие или выражение>)
<тело цикла>;
Оператором while удобно пользоваться для просмотра всевозможных последовательностей, если заранее известен признак ее завершения. Например, по определению, строка есть последовательность символов типа char, в конце которой находится нулевой символ. В следующем примере приведена программа, подсчитывающая количество символов в строке (длину строки):
#include <iostream.h> void main() { char *stroka,*s; //Указатели на массив. int len=0; //Начальная длина строки. stroka = new char [80]; //Выделение места //в памяти для размещения массива. s = stroka; //Сохранение значения указателя //для возврата памяти в кучу. cout << "\nЗадайте строку: "; cin >> stroka; //Ввод строки. cout << '\n'; while (*stroka++) len++; //Поиск нулевого символа. cout << "\nДлина строки: " << len << '\n'; delete [] s; //Уничтожение массива. }
Здесь выход из цикла - равенство нулю того элемента строки, который адресуется указателем stroka. Порядок вычисления выражения, стоящего после служебного слова while, будет следующим: сначала будет выбрано значение указателя stroka, затем оно будет использовано для доступа по адресу, выбранное значение будет значением выражения в скобках и затем значение указателя будет увеличено на 1.
Часто после служебного слова while располагается проверяемое условие. Пример: составить программу, вычисляющую сумму квадратов первых k натуральных чисел.
#include <iostream.h> void main() { int s=0,i=0,k; cout << "\nЗадайте число: "; cin >> k; cout << '\n'; while (i<k) s+=++i*i; cout << "\nРезультат: " << s << '\n'; }
Особый интерес здесь вызывает конструкция s+=++i*i;. Перепишем ее
следующим образом:
s=s+(++i*i);. Используя скобки, укажем последовательность выполнения
операций:
(s = (s + (++ (i*i)))). Таким образом, сначала вычисляется квадрат
i, затем значение
этого квадрата прибавляется к значению переменной s, после чего
значение переменной
i увеличивается на 1.
На следующем шаге мы приведем несколько примеров использования
оператора while.