Выбрать главу

Здесь под элементом условие понимается условное выражение. Условные выражения вычисляются сверху вниз. Как только в какой-нибудь ветви обнаружится истинный результат, будет выполнена инструкция, связанная с этой ветвью, а вся остальная "лестница" опускается. Если окажется, что ни одно из условий не является истинным, будет выполнена последняя else-инструкция (можно считать, что она выполняет роль условия, которое действует по умолчанию). Если последняя else-инструкция не задана, а все остальные оказались ложными, то вообще никакое действие не будет выполнено.

"Лестница" if-else-ifэто последовательность вложенных if-else-инструкций.

Работа if-else-if - "лестницы" демонстрируется в следующей программе.

// Демонстрация использования "лестницы" if-else-if.

#include <iostream>

using namespace std;

int main()

{

 int x;

 for(x=0; x<6; x++) {

  if(x==1) cout << "x равен единице.\n";

  else if(x==2) cout << "x равен двум.\n";

  else if(x==3) cout<< "x равен трем.\n";

  else if(x==4) cout << "x равен четырем.\n";

  else cout << "x не попадает в диапазон от 1 до 4.\n";

 }

 return 0;

}

Результаты выполнения этой программы таковы.

х не попадает в диапазон от 1 до 4.

х равен единице,

х равен двум,

х равен трем,

х равен четырем.

х не попадает в диапазон от 1 до 4.

Как видите, последняя else-инструкция выполняется только в том случае, если все предыдущие if-условия дали ложный результат.

Цикл for

Цикл forсамый универсальный цикл C++.

В главе 2 мы уже использовали простую форму цикла for. В этой главе мы рассмотрим этот цикл более детально, и вы узнаете, насколько мощным и гибким средством программирования он является. Начнем с традиционных форм его использования.

Итак, общий формат записи цикла for для многократного выполнения одной инструкции имеет следующий вид.

for(инициализация; выражение; инкремент) инструкция;

Если цикл for предназначен для многократного выполнения не одной инструкции, а программного блока, то его общий формат выглядит так.

fоr (инициализация; выражение; инкремент)

{

 последовательность инструкций

}

Элемент инициализация обычно представляет собой инструкцию присваивания, которая устанавливает управляющую переменную цикла равной начальному значению. Эта переменная действует в качестве счетчика, который управляет работой цикла. Элемент выражение представляет собой условное выражение, в котором тестируется значение управляющей переменной цикла. Результат этого тестирования определяет, выполнится цикл for еще раз или нет. Элемент инкремент— это выражение, которое определяет, как изменяется значение управляющей переменной цикла после каждой итерации. Обратите внимание на то, что все эти элементы цикла for должны отделяться точкой с запятой. Цикл for будет выполняться до тех пор, пока вычисление элемента выражение дает истинный результат. Как только это условное выражение станет ложным, цикл завершится, а выполнение программы продолжится с инструкции, следующей за циклом for.

В следующей программе цикл for используется для вывода значений квадратного корня, извлеченных из чисел от 1 до 99. Обратите внимание на то, что в этом примере управляющая переменная цикла называется num.

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

 int num;

 double sq_root;

 for(num=1; num<100; num++) {

  sq_root = sqrt((double) num);

  cout << num << " " << sq_root << '\n';

 }

 return 0;

}

Вот как выглядят первые строки результатов, выводимых этой программой.

1 1

2 1.41421

3 1.73205