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