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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
HDR
39 / 14 / 2
Регистрация: 11.05.2010
Сообщений: 139
#1

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

15.06.2010, 18:37. Просмотров 1182. Ответов 8
Метки нет (Все метки)

вообщем в одном из 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 i case
case-switch C++
C++ Switch + case
C++ Switch (Case)
case outside of switch ? Что за ошибка? C++
C++ Ошибка: "case label not within a switch statement"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
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
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
15.06.2010, 23:04     Ошибка при использовании Switch - case #4
Код case, в котором объявлена переменная, нужно заключить в фигурные скобки.
M128K145
Эксперт C++
 Аватар для M128K145
8277 / 3496 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
15.06.2010, 23:28     Ошибка при использовании Switch - case #5
Mr.X, замечание не по делу. Код кейса может не заключаться в фигурные скобки. Но заключается обычно в слово case и заканчивается словом break
Crudelis
Шаровик затейник
 Аватар для Crudelis
669 / 411 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
15.06.2010, 23:46     Ошибка при использовании Switch - case #6
код в студию, кофейная гуща закончилась
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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
C++ Switch - case
C++ Ошибка в switch case: expected primary-expression before '<=' token;
C++ Внутри switch ошибка Case bypasses initialization of a local variable
C++ C++, ошибка в операторе switch (case)

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

Или воспользуйтесь поиском по форуму:
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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