Как работает оператор switch в языке C++?



Оператор switch в c

Автор Strelok задал вопрос в разделе Другие языки и технологии

C++ оператор SWITCH и получил лучший ответ

Ответ от Николай Веселуха[гуру]
Оператор switch в C и C++ работает исключительно с целочисленными типами данных, а также с типами, которые к ним приводятся, например char и enum. Использовать строки или указатели char * в switch нельзя, поскольку это не числовые объекты, а области памяти. При этом стандарт полностью поддерживает и крупные целые типы, такие как unsigned long long, которые корректно обрабатываются в блоках case. Если вам необходимо организовать ветвление по строковым значениям, правильным решением будет завести перечисление enum для вашего ограниченного списка. Переключаться нужно по переменной этого enum, а для вывода текстового представления использовать соответствующий массив строк, обращаясь к нему по индексу.

Ответ от Александр Пожарский[гуру]
Нет, т. к. char *s - это "область памяти" (упрощённо можно считать динамическим массивом) , а с такими объектами C++ switch не работает (вроде он работает только с приводимыми к числовым типам)

Ответ от =Serge=[гуру]
Учебник откройте, наконец! Только тип интегер и приводимые к нему enum и char !
с. 119 Р. Лафоре - азбуки для новичков:
Так как у вас список строк, по-видимому ограничен, нужно просто завести enum:
enum days_of_week { Sun,Mon,Tue,Wed,Thu,Fri,Sat};
и далее,
days_of_week day1;
....
day1 =Sun;
switch (day1)
{
case Sun:cout < < "YES!";break
...
;
}
const int MAX =12;
const int DAYS=7;
Создавая массив строк char days [ DAYS ][ MAX ] =
{ "Sunday",..."Saturday"};
можно их печатать :
cout < <" Now :" < < days[day1];

Ответ от ВикиВопрос[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: C++ оператор SWITCH

Как применить тип String в switch в C++
В стандартных языках C и C++ оператор switch работает исключительно с целочисленными типами данных,
подробнее...

Оператор присваивания. что это такое ? и как объяснить препаду и пример если можно.
Оператор присваивания в программировании это команда, которая сохраняет значение в переменную. Чаще
подробнее...

В чем разница между функциями, которые возвращают значения и которые не возвращают? Не вникаю в смысл слова "возвращает"
Слово возвращают в программировании означает, что функция вычисляет результат и передает его
подробнее...

Для чего нужен return в C++ ?например return 0;
Оператор return в C++ завершает выполнение функции и передает значение в вызвавшую её часть
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*