Оператор switch дает возможность сопоставления
значения с множеством констант. Проверки в предыдущем примере можно представить в следующем виде:
switch (ch) {
case ‘i’:
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».