Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Циклы.docx
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
1.57 Mб
Скачать

Выражения отношений

Компьютеры — это нечто большее, чем неутомимые обработчики чисел. Они так­же умеют сравнивать значения, и эта их способность лежит в основе автоматическо­го принятия решений. В C++ эту возможность реализуют операции отношений. В C++ доступны шесть операций отношений для сравнения чисел.

Поскольку символы пред­ставлены своими ASCII-кодами, эти операции можно также применять и для срав­нения символов. Они не работают со строками в стиле С, но работают с объектами класса string.

Каждое сравнивающее выражение возвращает булевское (типа bool) значение true, если сравнение истинно, и false — в противном случае, поэтому дан­ные операции хорошо подходят для применения в проверочных условиях циклов. (Старые реализации оценивали истинные выражения как 1 и ложные — как 0.)

Этими шестью операциями отношений исчерпываются все возможности, преду­смотренные в C++ для сравнения чисел.

Цикл while

Цикл while - это цикл for, у которого удалены инициализирующая и обновляю­щая части; в нем имеется только проверочное условие и тело:

while (проверочное_условие)

тело

Сначала программа вычисляет выражение проверочное_условие в скобках. Если выражение дает в результате true, программа выполняет оператор (или операторы), содержащийся в теле цикла. Как и в случае с циклом for, тело состоит из единст­венного оператора либо блока, определенного фигурными скобками. После того, как завершено выполнение тела, программа возвращается к проверочному условию и за­ново вычисляет его. Если условие возвращает ненулевое значение, программа снова выполняет тело.

Этот цикл проверки и выполнения продолжается до тех пор, пока проверочное условие не вернет false.

Если вы хотите в ко­нечном итоге прервать цикл, то в теле цикла должно происходить нечто такое, что повлияет на выражение проверочного условия. Например, цикл может увеличивать значение переменной, используемой в проверочном условии, либо читать новое зна­чение, вводимое с клавиатуры. Подобно for, цикл while является циклом с входным условием. То есть, если проверочное условие оценивается как false в самом начале, то программа ни разу не выполнит тело цикла.

В листинге представлен пример работы цикла while. Цикл проходит по всем символам строки и отображает их ASCII-коды. По достижении нулевого символа цикл завершается. Эта техника прохода по символам строки до нулевого ограничителя является стандартным методом обработки строк в C++. Поскольку строка содержит маркер конца, программа часто не нуждается в явной информации о длине строки.

#include <iostream>

const int ArSize = 20;

int main()

{

using namespace std;

char name[ArSize];

cout << "Your first name, please: ";

cin >> name;

cout << "Here is your name, verticalized and ASCIIized:\n";

int i = 0; // start at beginning of string

while (name[i] != '\0')

{

cout << name[i] << ": " << int(name[i]);

cout << endl;

i++; // don't forget this step

}

getchar();

getchar();

return 0;

}