Оператор switch в c
Автор Strelok задал вопрос в разделе Другие языки и технологии
C++ оператор SWITCH и получил лучший ответ
Ответ от Николай Веселуха[гуру]
Оператор switch в C и C++ работает исключительно с целочисленными типами данных, а также с типами, которые к ним приводятся, например char и enum. Использовать строки или указатели char * в switch нельзя, поскольку это не числовые объекты, а области памяти. При этом стандарт полностью поддерживает и крупные целые типы, такие как unsigned long long, которые корректно обрабатываются в блоках case. Если вам необходимо организовать ветвление по строковым значениям, правильным решением будет завести перечисление enum для вашего ограниченного списка. Переключаться нужно по переменной этого enum, а для вывода текстового представления использовать соответствующий массив строк, обращаясь к нему по индексу.
Нет, т. к. char *s - это "область памяти" (упрощённо можно считать динамическим массивом) , а с такими объектами C++ switch не работает (вроде он работает только с приводимыми к числовым типам)
Учебник откройте, наконец! Только тип интегер и приводимые к нему 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];
Как применить тип String в switch в C++
В стандартных языках C и C++ оператор switch работает исключительно с целочисленными типами данных,
подробнее...
Оператор присваивания. что это такое ? и как объяснить препаду и пример если можно.
Оператор присваивания в программировании это команда, которая сохраняет значение в переменную. Чаще
подробнее...
1. Как записывается и как работает оператор FOR? 2. Для организации, каких циклов применим оператор FOR? 3. В чем отли
В Pascal оператор for записывают так: for i := 1 to N do begin операторы end; Здесь i — параметр
подробнее...
В чем разница между функциями, которые возвращают значения и которые не возвращают? Не вникаю в смысл слова "возвращает"
Слово возвращают в программировании означает, что функция вычисляет результат и передает его
подробнее...
Для чего нужен return в C++ ?например return 0;
Оператор return в C++ завершает выполнение функции и передает значение в вызвавшую её часть
подробнее...