caseзначение_2 : операторы_2;break;caseзначение_3 : операторы_3;break;. . .caseзначение_n : операторы_n;break;default:операторы;break;
Оператор работает следующем образом:
- вычисляется значение выражения;
- затем выполняются операторы, помеченные значением, совпадающим со значением выражения, например: если выражение принимает значение_1, то выполняются операторы_1 и т.д;
- если выражение не принимает ни одного из значений, то выполняются операторы группы default (Ветвь default может отсутствовать).
Оператор break необходим для того, чтобы осуществить выход из оператора switch. Если он не указан, то будут выполняться следующие группы операторов из списка, несмотря на то, что значение, которым они помечены, не совпадает со значением выражения.
Значения, которыми помечены операторы должны быть только константами или константными выражениями (т.е. операнды выражений - константы).
Пример
// Использование условных операторов double x, y, z; char ch = ' '; x = 10.5; y = -25.45; if (ch == ' ') z = x + y ; // результат z = -14.95 if (ch == '+') z = x + y ; else if (ch == '-') z = x - y ; else if (ch == '*') z = x * y ; else if (ch == '/') z = x * y ; else z = (double)((int)x % (int)y ); //результат z = 10.00 // Использование переключателя ch = '/'; switch (ch)