В профессионально написанном С++-коде редко можно встретить инструкцию count=count+1, поскольку для инструкций такого рода в C++ предусмотрена специальная сокращенная форма: count++. Оператор "++" называется оператором инкремента. Он увеличивает операнд на единицу. Оператор "++" дополняется оператором "--" (оператором декремента), который уменьшает операнд на единицу. С помощью оператора инкремента используемую в предыдущей программе инструкцию for можно переписать следующим образом.
for(count=1; count<=100; count++) cout << count << " ";
Поскольку C++ — структурированный (а также объектно-ориентированный) язык, он поддерживает создание блоков кода. Блок — это логически связанная группа программных инструкций, которые обрабатываются как единое целое. В C++ программный блок создается путем размещения последовательности инструкций между фигурными (открывающей и закрывающей) скобками. В следующем примере
if(х<10) {
cout << "Слишком мало, попытайтесь еще раз.";
cin >> х;
}
обе инструкции, расположенные после if-инструкции (между фигурными скобками) выполнятся только в том случае, если значение переменной х меньше 10. Эти две инструкции (вместе с фигурными скобками) представляют блок кода. Они составляют логически неделимую группу: ни одна из этих инструкций не может выполниться без другой. С использованием блоков кода многие алгоритмы реализуются более четко и эффективно. Они также позволяют лучше понять истинную природу алгоритмов.
Блок — это набор логически связанных инструкций.
В следующей программе используется блок кода. Введите эту программу и выполните ее, и тогда вы поймете, как работает блок кода.
// Программа демонстрирует использование блока кода.
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "Введите первое число: "; cin >> a;
cout << "Введите второе число: "; cin >> b;
if(a < b) {
cout << "Первое число меньше второго.\n";
cout << "Их разность равна: " << b-a;
}
return 0;
}
Эта программа предлагает пользователю ввести два числа с клавиатуры. Если первое число меньше второго, будут выполнены обе cout-инструкцин. В противном случае обе они будут опущены. Ни при каких условиях не выполнится только одна из них.
В C++ точка с запятой означает конец инструкции. Другими словами, каждая отдельная инструкция должна завершаться точкой с запятой.
Как вы знаете, блок — это набор логически связанных инструкций, которые заключены между открывающей и закрывающей фигурными скобками. Блок нe завершается точкой с запятой. Поскольку блок состоит из инструкций, каждая из которых завершается точкой с запятой, то в дополнительной точке с запятой нет никакого смысла. Признаком же конца блока служит закрывающая фигурная скобка (зачем еще один признак?).
Язык C++ не воспринимает конец строки в качестве признака конца инструкции. По-этому для компилятора не имеет значения, в каком месте строки располагается инструкция. Например, с точки зрения С++-компилятора, следующий фрагмент кода
х = у;
у = у+1;
mul(x, у);
аналогичен такой строке:
x = у; у = у+1; mul(x, у);
Рассматривая предыдущие примеры, вы, вероятно, заметили, что некоторые инструкции сдвинуты относительно левого края. C++ — язык свободной формы, т.е. его синтаксис не связан позиционными или форматными ограничениями. Это означает, что для С++-компилятора не важно, как будут расположены инструкции по отношению друг к другу. Но у программистов с годами выработался стиль применения отступов, который значительно повышает читабельность программ. В этой книге мы придерживаемся этого стиля и вам советуем поступать так же. Согласно этому стилю после каждой открывающей скобки делается очередной отступ вправо, а после каждой закрывающей скобки на-чало отступа возвращается к прежнему уровню. Существуют также некоторые определенные инструкции, для которых предусматриваются дополнительные отступы (о них речь впереди).