24. Оператор выражение. Пустой оператор
Самый простой вид оператора – оператор выражение. Он включает в себя выражение, за которым следует точка с запятой.
К примеру:
a = b*3 + c;
cout << «go go go»; lseek(fd,0,2); Простейший оператор – пустой оператор:
Он не делает ничего. Но он используется тогда, когда синтаксис требует присутствия оператора, а данный оператор не нужен.
Блок представляет собой возможно пустой список операторов, находящихся в фигурных скобках:
{a = b + 2; b++;}
Блок дает возможность рассматривать несколько операторов как один. Область видимости имени, которая описана в блоке, простирается до конца блока. Имя может быть невидимым с помощью описаний такого же имени во внутренних блоках.
Программа в следующем примере производит преобразование дюймов в сантиметры и сантиметров в дюймы; предполагается, что указаны единицы измерения вводимых данных, добавляется i для дюймов и c для сантиметров:
#include main()
{
const float fac = 2.54; float x, in, cm; char ch = 0;
cout << «введите длину: «; cin>> x >> ch;
if (ch == { // inch – дюймы
in = x;
cm = x*fac;
}
else if (ch == 'c') // cm – сантиметры in = x/fac; cm = x;
}
else
in = cm = 0;
cout << in << «in=» << cm << «cm\n»;}
25. Оператор switch, break. Копирование строки
Оператор switch дает возможность сопоставления значения с множеством констант. Проверки в предыдущем примере можно представить в следующем виде:
switch (ch) {
case
in = x;
cm = x*fac;
break;
case 'c':
in = x/fac;
cm = x;
break;
default:
in = cm = 0;
break;
}
Операторы break используются для выхода из оператора switch. Константы в вариантах case могут иметь различные значения, и если проверяемое значение не совпадает ни с одной из констант, принимается вариант default. Программист не обязательно должен предусматривать default.
Покажем копирование строки, когда заданы указатель p на ее первый символ и указатель q на целевую строку. По соглашению строка заканчивается символом с целым значением 0.
while (p!= 0) {
*q = *p; // скопировать символ q = q+1;
p = p+1;
}
*q = 0; // завершающий символ 0 скопирован не был.
После while любое условие должно находиться в круглых скобках. Условие вычисляется, и, если оно не нулевое, выполняется непосредственно следующий за ним оператор. Это происходит до тех пор, пока вычисление условия не даст ноль.
Можно применять операцию ++ для непосредственного указания увеличения, и проверка будет значительно проще:
while (*p) *q++ = *p++;
*q = 0;
где конструкция *p++ значит: «взять символ, на который задает p, затем увеличить p».