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

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

Восстановить пароль Регистрация
 
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 14:50     Почему switch case начал работать неправильно? #1
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).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 14:50     Почему switch case начал работать неправильно?
Посмотрите здесь:

C++ switch case
C++ Switch - case
C++ switch i case
C++ Switch + case
C++ Switch (Case)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anklbenz
7 / 7 / 1
Регистрация: 21.12.2012
Сообщений: 65
15.02.2013, 14:52     Почему switch case начал работать неправильно? #2
так на вскидку, а где break; после case'ов
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
15.02.2013, 14:56     Почему switch case начал работать неправильно? #3
Попадая на любой case, он доходит до последнего, потому что нету break/return.
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 14:57  [ТС]     Почему switch case начал работать неправильно? #4
Вьезд в тему осуществлен) проблема решена)))) спасибо всем за внимание))))))
Flexx02
25 / 25 / 0
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 15:00     Почему switch case начал работать неправильно? #5
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 - у то все равно его добавить
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 15:00  [ТС]     Почему switch case начал работать неправильно? #6
извиняйте, я - просто ацький програмист, третий день програмлю))))
Flexx02
25 / 25 / 0
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 15:04     Почему switch case начал работать неправильно? #7
Обращайся на то мы здесь=))
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
15.02.2013, 15:25     Почему switch case начал работать неправильно? #8
Цитата Сообщение от ZerkaloTMY Посмотреть сообщение
извиняйте, я - просто ацький програмист
Я бы сказал грубее. Выкинуть нафиг этот здоровенный switch и рулить через конкатенацию строк.
Flexx02
25 / 25 / 0
Регистрация: 26.05.2012
Сообщений: 164
Записей в блоге: 1
15.02.2013, 16:00     Почему switch case начал работать неправильно? #9
Цитата Сообщение от 0x10 Посмотреть сообщение
Я бы сказал грубее. Выкинуть нафиг этот здоровенный switch и рулить через конкатенацию строк.
ТОесть так=))
C++
1
Image1->Picture->LoadFromFile("E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/+"T1"+.jpg");
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
15.02.2013, 16:26  [ТС]     Почему switch case начал работать неправильно? #10
Цитата Сообщение от 0x10 Посмотреть сообщение
конкатенацию строк.
Действительно грубее, таких нецензурных выражений раньше слышать не приходилось.


Flexx02, афигеть, ну Вы, сударь, мастэр кодинга %) благодарю
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:03  [ТС]     Почему switch case начал работать неправильно? #11
Flexx02, сударь, этот метод не работает, компилятор ругается сильно, что делать? %)
Karuselia
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:08     Почему switch case начал работать неправильно? #12
Возвращать 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");
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:09  [ТС]     Почему switch case начал работать неправильно? #13
Karuselia, 2085 инвалид пойнтер адишн
Karuselia
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:10     Почему switch case начал работать неправильно? #14
ZerkaloTMY, а если обратно вернуть case и switch?
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 16:13  [ТС]     Почему switch case начал работать неправильно? #15
C++
1
2
3
String yo1 = IntToStr(t1);
String PathImage = "E:/PRO/_Projects/First_Steps/BS/Taro/Zerkalo/" + yo1 + ".jpg";
Image1->Picture->LoadFromFile(PathImage);

Ага! Я сделало! %)))
Karuselia
 Аватар для Karuselia
24 / 10 / 1
Регистрация: 21.05.2012
Сообщений: 37
17.02.2013, 16:14     Почему switch case начал работать неправильно? #16
На будущее - конкатенация="склеивание" строк
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 17:22     Почему switch case начал работать неправильно?
Еще ссылки по теме:

Switch-case C++
C++ Switch - Case
C++ Switch - case

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

Или воспользуйтесь поиском по форуму:
ZerkaloTMY
 Аватар для ZerkaloTMY
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 68
17.02.2013, 17:22  [ТС]     Почему switch case начал работать неправильно? #17
Karuselia, благодарю
Yandex
Объявления
17.02.2013, 17:22     Почему switch case начал работать неправильно?
Ответ Создать тему
Опции темы

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