Форум программистов, компьютерный форум CyberForum.ru

Ошибка при использовании Switch - case - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
HDR
39 / 14 / 2
Регистрация: 11.05.2010
Сообщений: 139
15.06.2010, 18:37     Ошибка при использовании Switch - case #1
вообщем в одном из case у меня читается из файла и записывается в массив структур,
там же определяется и инициализируется несколько значимых переменных (вот MAX например),
которые я использую в других case, так вот компилятор ругается:

Error11 error C2360: initialization of 'MAX' is skipped by 'case' label

че сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2010, 18:37     Ошибка при использовании Switch - case
Посмотрите здесь:

C++ switch case
C++ Оптимальная конструкция switch-case-while / while-switch-case
C++ switch-case, как писать в самом case
case outside of switch ? Что за ошибка? C++
C++ Switch - Case
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
15.06.2010, 18:44     Ошибка при использовании Switch - case #2
Цитата Сообщение от HDR Посмотреть сообщение
че сделать?
кофе заваривать, карты раскидывать, на чём там ещё обычно гадают... Судя по ошибке, в ветке "label" переменная MAX не инициализируется, но используется где-то дальше. А где именно - не видя кода только гадать и остаётся...
Market
21 / 21 / 1
Регистрация: 18.03.2010
Сообщений: 19
15.06.2010, 20:12     Ошибка при использовании Switch - case #3
Лучше код киньте посмотреть
Mr.X
Эксперт С++
 Аватар для Mr.X
2799 / 1575 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
15.06.2010, 23:04     Ошибка при использовании Switch - case #4
Код case, в котором объявлена переменная, нужно заключить в фигурные скобки.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
15.06.2010, 23:28     Ошибка при использовании Switch - case #5
Mr.X, замечание не по делу. Код кейса может не заключаться в фигурные скобки. Но заключается обычно в слово case и заканчивается словом break
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
15.06.2010, 23:46     Ошибка при использовании Switch - case #6
код в студию, кофейная гуща закончилась
Mr.X
Эксперт С++
 Аватар для Mr.X
2799 / 1575 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
16.06.2010, 07:30     Ошибка при использовании Switch - case #7
Цитата Сообщение от M128K145 Посмотреть сообщение
Mr.X, замечание не по делу. Код кейса может не заключаться в фигурные скобки. Но заключается обычно в слово case и заканчивается словом break
Попробуйте объявить в case переменную, не заключая его код в фигурные скобки, и с вами будет то же, что и с автором.
SameeR
3 / 3 / 0
Регистрация: 10.04.2010
Сообщений: 14
16.06.2010, 15:32     Ошибка при использовании Switch - case #8
прога тима системы данных

посмотри код и сравни свой
может найдешь ошибку
не видя код не могу ничего сказать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2010, 20:29     Ошибка при использовании Switch - case
Еще ссылки по теме:

C++ Ошибка в switch case: expected primary-expression before '<=' token;
C++ Switch case внутри switch case
C++ Внутри switch ошибка Case bypasses initialization of a local variable

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
16.06.2010, 20:29     Ошибка при использовании Switch - case #9
Цитата Сообщение от M128K145 Посмотреть сообщение
Код кейса может не заключаться в фигурные скобки. Но заключается обычно в слово case и заканчивается словом break
Здесь как раз о случае, когда надо заключать:
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    switch (2 + 2)
    {
        case 0:
            int a = 5;
            break;
        case 1:
            break;
    }
}
Такое не компилится, потому что a объявлена в блоке switch, но при переходе на case 1 её инициализация пропустилась бы. Если же случай case 0 заключить в отдельный блок, то a будет доступна только в нём и всё будет нормально.
Yandex
Объявления
16.06.2010, 20:29     Ошибка при использовании Switch - case
Ответ Создать тему
Опции темы

Текущее время: 00:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru