Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68

Почему switch case начал работать неправильно?

15.02.2013, 14:50. Показов 2502. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
switch(T1)
{
case 1: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/1.jpg");
case 2: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/2.jpg");
case 3: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/3.jpg");
case 4: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/4.jpg");
case 5: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/5.jpg");
case 6: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/6.jpg");
case 7: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/7.jpg");
case 8: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/8.jpg");
case 9: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/9.jpg");
case 10: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/10.jpg");
case 11: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/11.jpg");
case 12: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/12.jpg");
case 13: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/13.jpg");
case 14: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/14.jpg");
case 15: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/15.jpg");
case 16: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/16.jpg");
case 17: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/17.jpg");
case 18: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/18.jpg");
case 19: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/19.jpg");
case 20: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/20.jpg");
case 21: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/21.jpg");
case 22: Image4->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/0.jpg");
}
Раньше все работало правильно, вроде существеннных изменений не было внесено, но вдруг начало глючить.
Ума не приложу с чего бы вдруг.
Значение Т1 рассчитывается правильно (это было проверено несколько раз и сомнений не осталось).
Тем не менее, каким бы ни было значение Т1 оно постоянно выдает последюю строку (в данном случае эту:

case 22: Image4->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/0.jpg");

То есть, ставит всегда последнюю картинку, независимо от значения Т1. Что же не так?

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
 int res1 = 0;
   while (year)
   {
        res1 += year % 10;
        year /= 10;
    }
 
if (day >= 23)
{
T1 = day - 22;
}
else
{
T1 = day;
}
 
T2 = month;
 
while (res1 >= 23)
{
res1 = res1 - 22;
}
 
T3 = res1;
 
T4 = T1 + T2;
while (T4 >= 23)
{T4 = T4 - 22;}
 
T5 = T2 + T3;
while (T5 >= 23)
{T5 = T5 - 22;}
 
T6 = T4 + T5;
while (T6 >= 23)
{T6 = T6 - 22;}
 
T7 = T1 + T5;
while (T7 >= 23)
{T7 = T7 - 22;}
 
T8 = T2 + T6;
while (T8 >= 23)
{T8 = T8 - 22;}
 
T12 = T4 + T5 + T6;
while (T12 >= 23)
{T12 = T12 - 22;}
 
T13 = T1 + T4 + T6;
while (T13 >= 23)
{T13 = T13 - 22;}
 
T14 = T3 + T5 + T6;
while (T14 >= 23)
{T14 = T14 - 22;}
 
Label6->Caption="Òàðî-Ïñèõîòèï ïî Àëèöèè Õøàíîâñêîé. \n Ðàñøèôðîâêà ïîçèöèé: \n 1(äåòñòâî, èëè ïåðâàÿ ÷àñòü æèçíè, îðèåíòèðîâî÷íî äî 25 ëåò): " + IntToStr(T1)
+ "\n 2(ìîëîäîñòü, èëè âòîðàÿ ÷àñòü æèçíè, îðèåíòèðîâî÷íî äî 50 ëåò): " + IntToStr(T2)
+ "\n 3(ñòàðîñòü, èëè òðåòüÿ ÷àñòü æèçíè, îðèåíòèðîâî÷íî ïîñëå 50 ëåò): " + IntToStr(T3)
+ "\n 4(ïîäñîçíàíèå,* ñêðûòûå ñòðàõè, êîìïëåêñû): " + IntToStr(T4)
+ "\n 5(ñîçíàíèå è ñèñòåìà öåííîñòåé): " + IntToStr(T5)
+ "\n 6(ñâåðõñîçíàíèå, äóõîâíûå ïîêðîâèòåëè è ñêðûòûå òàëàíòû): " + IntToStr(T6)
+ "\n 7(êàðìè÷åñêàÿ çàäà÷à, îáëàñòè ðåàëèçàöèè æèçíåííîé ìèññèè): " + IntToStr(T7)
+ "\n 8(òàëàíòû è ñïîñîáíîñòè): " + IntToStr(T8)
+ "\n 12(ïñèõè÷åñêàÿ ãàðìîíèÿ, óñëîâèÿ íåîáõîäèìûå äëÿ êîìîôðòà è ñ÷àñòüÿ): " + IntToStr(T12)
+ "\n 13(ñàìîîöåíêà è âíóòðåííåå ñîñòîÿíèå): " + IntToStr(T13)
+ "\n 14(ïîâåäåíèå â îáùåñòâå è îöåíêà ÷åëîâåêà îáùåñòâîì): " + IntToStr(T14);
 
switch(T1)
{
case 1: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/1.jpg");
case 2: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/2.jpg");
case 3: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/3.jpg");
case 4: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/4.jpg");
case 5: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/5.jpg");
case 6: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/6.jpg");
case 7: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/7.jpg");
case 8: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/8.jpg");
case 9: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/9.jpg");
case 10: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/10.jpg");
case 11: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/11.jpg");
case 12: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/12.jpg");
case 13: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/13.jpg");
case 14: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/14.jpg");
case 15: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/15.jpg");
case 16: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/16.jpg");
case 17: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/17.jpg");
case 18: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/18.jpg");
case 19: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/19.jpg");
case 20: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/20.jpg");
case 21: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/21.jpg");
case 22: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/0.jpg");
}
Весь код.

Т1 = 2
Но картинку вставляет будто Т1 = 22

При чем, в

case 2:

было добавлено следующее - ShowMessage("2");

Программа показала этот мессейдж и при этом проставила картинку 2 (сделало все правильно).

Но после того как мессейдж был закрыт, снова проставила неправильную картинку (0.jpg).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.02.2013, 14:50
Ответы с готовыми решениями:

Оптимальная конструкция switch-case-while / while-switch-case
Имеется конструкция типа: switch() { case 1: while() { ... }

Почему не может использоваться command в качестве case для switch?
Почему не может использоваться command в качестве case для switch? using System; using System.Collections.Generic; using...

Подскажите, пожалуйста, почему в операторе switch-case подчёркивается красным razdelHCode...
Здравствуйте. Подскажите, пожалуйста, почему в операторе switch-case подчёркивается красным razdelHCode (константа, имеющая тип int). ...

16
8 / 8 / 4
Регистрация: 21.12.2012
Сообщений: 121
15.02.2013, 14:52
так на вскидку, а где break; после case'ов
0
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
15.02.2013, 14:56
Попадая на любой case, он доходит до последнего, потому что нету break/return.
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 14:57  [ТС]
Вьезд в тему осуществлен) проблема решена)))) спасибо всем за внимание))))))
0
25 / 25 / 2
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 15:00
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
switch(T1)
{
case 1: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/1.jpg"); break;
case 2: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/2.jpg"); break;
case 3: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/3.jpg"); break;
case 4: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/4.jpg"); break;
case 5: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/5.jpg"); break;
case 6: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/6.jpg"); break;
case 7: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/7.jpg"); break;
case 8: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/8.jpg"); break;
case 9: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/9.jpg"); break;
case 10: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/10.jpg"); break;
case 11: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/11.jpg"); break;
case 12: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/12.jpg"); break;
case 13: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/13.jpg"); break;
case 14: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/14.jpg"); break;
case 15: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/15.jpg"); break;
case 16: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/16.jpg"); break;
case 17: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/17.jpg"); break;
case 18: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/18.jpg"); break;
case 19: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/19.jpg"); break;
case 20: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/20.jpg"); break;
case 21: Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/21.jpg"); break;
case 22: Image4->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/0.jpg"); break;
}
swich - после каждого case должен стоять break иначу будут выполнятся дальнейшие условия, тоесть те case которые идут ниже и ещо в конце нада добавть

C++
1
2
default {
}
ето, операцыя которая будет выполнятса когда не один case не подходит.
Мой совет, даже если нету никакой операцыя по default - у то все равно его добавить
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 15:00  [ТС]
извиняйте, я - просто ацький програмист, третий день програмлю))))
0
25 / 25 / 2
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 15:04
Обращайся на то мы здесь=))
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
15.02.2013, 15:25
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
извиняйте, я - просто ацький програмист
Я бы сказал грубее. Выкинуть нафиг этот здоровенный switch и рулить через конкатенацию строк.
0
25 / 25 / 2
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 16:00
Цитата Сообщение от 0x10 Посмотреть сообщение
Я бы сказал грубее. Выкинуть нафиг этот здоровенный switch и рулить через конкатенацию строк.
ТОесть так=))
C++
1
Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/+"T1"+.jpg");
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 16:26  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
конкатенацию строк.
Действительно грубее, таких нецензурных выражений раньше слышать не приходилось.


Flexx02, афигеть, ну Вы, сударь, мастэр кодинга %) благодарю
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:03  [ТС]
Flexx02, сударь, этот метод не работает, компилятор ругается сильно, что делать? %)
0
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:08
Возвращать switch и дописывать break х))

Добавлено через 1 минуту
Цитата Сообщение от Flexx02 Посмотреть сообщение
ТОесть так=))
C++
1
Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/+"T1"+.jpg");
Немного не так.

Попробуй так
C++
1
Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/"+T1+".jpg");
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:09  [ТС]
Karuselia, 2085 инвалид пойнтер адишн
0
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:10
ZerkaloTMY, а если обратно вернуть case и switch?
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:13  [ТС]
C++
1
2
3
String yo1 = IntToStr(t1);
String PathImage = "E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/" + yo1 + ".jpg";
Image1->Picture->LoadFromFile(PathImage);

Ага! Я сделало! %)))
0
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:14
На будущее - конкатенация="склеивание" строк
0
 Аватар для ZerkaloTMY
0 / 0 / 1
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 17:22  [ТС]
Karuselia, благодарю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2013, 17:22
Помогаю со студенческими работами здесь

Switch-case: Не могу понять почему не весь код в методе возвращается
подскажите пожалуйста... Не могу понять почему пишет что не весь код в методе возвращается. Я в каждом кейсе возвращаю созданный...

Почему оператор case не хочет работать?
Разве char - это не "односимвольная строка"? foreach var s in ReadAllLines('Setting.txt') do begin var arr :=...

почему кулер на ноутбуке начал громче работать и что с этим можно сделать?
почему кулер на ноутбуке начал громче работать и что с этим можно сделать?

Почему switch продолжает работать (без break)?
Почему если мы уберем break то он выводит то что поидее не должен выводить. Вводим например символ a,а он печатает те слова которые не...

Почему участки кода со "switch-case" - это плохо и реплейсятся при рефакторинге?
Попалась мне статейка одна на Хабре, где давались рекомендации по грамотному написанию кода. Одним из пунктов в ней был отказ от...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru