Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Сравнение switch case без учета регистра

Возможно ли сравнение в switch case без учета регистра? Сравниваю string
C#
1
2
3
4
5
6
switch(c)
{
case "без учета регисТрА":
 
break;
}
Ответ: Someone007, дополню!
Сообщение от slashvlz
Отличие switch от if в том, что в switch'е в вариантах условий выбора должна быть константа, то есть выражение которое известно уже на этапе компиляции
Новые возможности switch в C# 7.0

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
object obj;
// ...
switch(obj) {
  case 42:
    // ...
  case Color.Red:
    // ...
  case string s:
    // ...
  case Point(int x, 42) where (Y > 42):
    // ...
  case Point(490, 42):
    // ...
  default:
    // ...
}
Вопрос: c# wpf DataContext gettype switch

Здравствуйте.

Подскажите пожалуйста как сделать определения класса в DataContext в switch

Как сделать через if понятно:
if(DataContext as ClassTest1){
}
if(DataContext as ClassTest2){
}


А как это сделать через switch?
switch (DataContext){
case ClassTest1 : break;
case ClassTest1 : break;
}
Ответ: Nechto,

через Switch это не сделать, можно сделать Dictionary в котором ключём будет Type, а методом Action
как вариант
Вопрос: Что быстрее: if else или switch

Есть такая ситуация, что необходима проверка на значение перменной.
Что будет быстрее работать - 50 конструкций if else или switch?
Подозреваю, что switch.
Ответ:
Leonid Kudryavtsev
Я бы просто HashMap использовал.

Подозреваю, что если компилятор умный, он сам switch со строками сделает через hash.

Для этого есть perfect hash.
Вопрос: Разобраться с программой со Switch

Здравствуйте. Не могу понять,как работает программа. Был бы рад,если бы кто-то объяснил,что при выборе каждого элемента будет происходить..
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
int i,c;
char input[]="tratata2\3\141ZW\1hopa";
for(i=2;(c=input[i])!='\0';i++)
{
switch(c) {
case 'a': putchar('i'); continue;
case '2': break;
case   1:
case  3 :  putchar('A');break;
case  141 : putchar('B');
case 'E': case 'K' : continue;
default : putchar(c); continue;
}
putchar('_');
}
putchar('\n');
getchar();
}
Ответ: У Вас в коде нет возможности ввода, есть строка, которая обрабатывается
Сообщение от Kuroky
C
1
char input[]="tratata2\3\141ZW\1hopa";
Вопрос: Оператор switch со строками

здравствуйте,как написать оператор выбора для string?
команда
C++
1
2
3
4
std::string t; 
switch(t)
{
}
не работает
Ответ:
Сообщение от Kastaneda
Если есть возможность, компилятор оптимизирует до таблицы переходов.
Замечательная оптимизация! Но с гипотетическими хеш-кодами такое явно не прокатит.
Вопрос: Ошибка: "case label not within a switch statement"

Здравствуйте, работая с оператором switch произошла ошибка
C++
1
2
3
case label '1' not within a switch statement
case label '1' not within a switch statement
case label '1' not within a switch statement
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
std::cin >> pEnter;
    if(pEnter){
        case 1: Movies[0][0] = 'X';
        case 2: Movies[0][1] = 'X';
        case 3: Movies[0][2] = 'X';
        case 4: Movies[1][0] = 'X';
        case 5: Movies[1][1] = 'X';
        case 6: Movies[1][2] = 'X';
        case 7: Movies[2][0] = 'X';
        case 8: Movies[2][1] = 'X';
        case 9: Movies[2][2] = 'X';
    }
Ответ:
Сообщение от IDis
на русском что это означает?
Метка case 1 находится вне конструкции switch. Фигурные скобки забыл после switch и в конце его.

Добавлено через 48 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    while (i-->0)
        {
        switch (i)
        { // <--
        case 1:  printf(" 0 ");     break;
        case 2:  printf(" 22 ");    break;
        case 10: printf("*****");   break;
        case 11: printf("1");       break;
        case 12: printf("*****");   break;
        case 13: printf("*****");   break;
        case 14: printf("*****");   break;
        case 15: printf("*****");   break;
        case 16: printf("*****");   break;
        default: printf(" :) ");    break;
        } // <--
        }
Вопрос: Оператор Switch Case или недогоняю условие задачи

Добрый день.
Дана задача. (C# console)
Оператор Switch Case
Составить программу, которая рассчитывает значение у(х), согласно введенному вещественному числу х с помощью конструкции Switch Case. Кроме этого, программа должна выводить текст сработавшего условия.
 
х - 5 при х от -5 до 7;
х - 10 при х=10;-10;14
х - 15 при х=18;
х - 20 при х>20;
х - 25 при других значениях.

Решение, 1) пользователь вводит вещественное число х
2) оператор
C#
1
switch (x)
- но, согласно должен быть switch (целочисленное)
3)
C#
1
case
в C# не равен диапазону, списку значений, а должно быть ЕДИНСТВЕННОЕ значение, верно.
4) даже если преподаватель хочет видеть использование Switch Case, то можно тупо расписать:
C#
1
2
3
4
case -5
case -4
....
case 20
Но, как быть с при х>20, при других значениях?? Может я неправильно читаю УСЛОВИЕ задачи? Помогите посмотреть свежим глазом, может у вас есть мнение. Задача начального уровня, явно без "наворотов".
Спасибо
Ответ: liudmila8621, в конкретной этой задаче, т.к. условия имеют целочисленные диапазоны, то дробная часть x при выборе соответствующего условия не имеет значения, поэтому можно сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
double y, x = Double.Parse(Console.ReadLine());
 
int ix = (int)Math.Abs(x) + (x - (int)x != 0 ? 1 : 0);
if (x < 0)
    ix = -ix;
        
switch(ix)
{
    // ...
    case 10: case -10: case 14: y = x - 10; break;
    case 18: y = x - 15; break;
    // ...
}
Но остаётся проблема с x > 20 и "другие значения", это 2 бесконечных диапазона, а switch позволяет реализовать только один из них (ключевое слово default). Объясните суть этой проблемы вашему преподавателю.
Других вариантов не вижу
Вопрос: Не работает switch

Switch не работает! Как быть? Всякое перепробовал но результатов НОЛЬ
Это чет тип калькулятора... правда недоделованного.
Помогите плииз

Код 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
#include <windows.h>
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
 
//прототипы функций
void msk(void);
void init(void);
void zap(void);
 
 
//глобальные переменные
int tabl[1][10];
int s=0,x,y,a,i;
void *bitmap;
 
 
int main()
{
 init();
  getch();
  setlinestyle(DOTTED_LINE, 3, RED);
  zap();
  rectangle(5, 38, 270, 74);
  rectangle(5, 192, 270, 440);
  
  
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 3); 
    setfillstyle(SOLID_FILL, BLUE); 
  bar(20, 400, 50, 430);
  line(28, 408, 42, 408);
  line(28,408, 28, 422);
  line(28, 422, 42, 422);
  line(42, 422, 42, 408);
  bar(80, 400, 110, 430);
 
  bar(140, 400, 195, 430);
  
outtextxy(140, 400, "00");
  bar(20, 350, 50, 380);
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 4); 
  outtextxy(20, 350, "1");
  bar(80, 350, 110, 380);
 
  outtextxy(80, 352, "2");
  bar(140, 350, 170, 380);
  
 outtextxy(140, 352, "3");
  bar(20, 300, 50, 330);
   outtextxy(20, 300, "4");
  bar(80, 300, 110, 330);
   outtextxy(80, 300, "5");
  
  bar(140, 300, 170, 330);
   outtextxy(140, 300, "6");
  
  bar(20, 250, 50, 280);
     outtextxy(20, 250, "7");
  
  bar(80, 250, 110, 280);
  outtextxy(80, 250, "8");
  
  bar(140, 250, 170, 280);
   outtextxy(140, 250, "9");
setfillstyle(SOLID_FILL, RED); 
  
  bar(20, 200, 50, 230);
  line(24,204,46,204);
  line(24, 204, 24, 226);
  line(24,226, 46, 226);
  
  bar(80, 200, 110, 230);
  line(84,204, 106, 226);
  
  bar(140, 200, 170, 230);
  line(144, 204, 166, 226);
  line(166, 204, 144, 226);
  
  bar(220, 350, 250, 430);
  line(224, 384, 246, 384);
  line(224, 398, 246, 398);
  bar(220, 300, 250, 330);
  line(235, 304, 235, 326);
  line(224, 315, 246, 315);
  
  bar(220, 250, 250, 280);
  line(224, 265, 246, 265);
  bar(220, 200, 250, 230);
  line(224, 215, 245, 215);
  line(224,215, 235, 205);
  line(224,215, 235, 225);
 
{
  setfillstyle(SOLID_FILL, WHITE);
  bar(93, 413, 97, 417);
}
 
msk();
    
 
closegraph();
  
  
 
  return 0;
}
 
 
    
void init(void)
  {
  initwindow(280, 455);
  
  }    
    void msk(void)
{
  while (mousebuttons()!=2)
  {
    while (mousebuttons()!=1);
    {
      
      x=mousex();
      y=mousey();
     
      i=0;
      
      
      while(mousebuttons()==1)
        { 
      if(x>20&&y>400&&x<50&&y<430)s=1;
      if(x>20&&y>350&&x<50&&y<380)s=2;
      if(x>80&&y>350&&x<110&&y<380)s=3;
      if(x>140&&y>350&&x<170&&y<380)s=4;
      if(x>20&&y>300&&x<50&&y<330)s=5;
      if(x>80&&y>300&&x<110&&y<330) s=6;
      
      if(x>140&&y>300&&x<170&&y<330)s=7;
      if(x>20&&y>250&&x<50&&y<280) s=8;
      if(x>80&&y>250&&x<110&&y<280) s=9;
      if(x>140&&y>250&&x<170&&y<280) s=10;
      
      if(x>140&&y>400&&x<195&&y<430) s=11;
      switch(s)
    {
    
     case '1' :   {outtextxy(230-i, 38, "0");i+=30;delay(150);s=0; break;}
     case '2' :  { outtextxy(230-i, 38, "1");i+=30;delay(150);s=0;break;}
     case '3' : { outtextxy(230-i, 38, "2");i+=30;delay(150);s=0;break;}
     case '4' :  { outtextxy(230-i, 38, "3");i+=30;delay(150);s=0;break;}
     case '5' : { outtextxy(230-i, 38, "4");i+=30;delay(150);s=0;break;}
     case '6' : { outtextxy(230-i, 38, "5");i+=30;delay(150);s=0;break;}
     case '7' :  { outtextxy(230-i, 38, "6");i+=30;delay(150);s=0;break;}
     case '8' : { outtextxy(230-i, 38, "7");i+=30;delay(150);s=0;break;}
     case '9' :  { outtextxy(230-i, 38, "8");i+=30;delay(150);s=0;break;}
     case '10' : { outtextxy(230-i, 38, "9");i+=30;delay(150);s=0;break;}
     case '11' :  { outtextxy(230-i, 38, "00");i+=30;delay(150);s=0;break;}
       }
     }
      }
    
  }
  
  }  
  
    
    
    void zap()
    {
       setfillstyle(SOLID_FILL, BLACK);
    bar(6, 39, 269, 73);
    }
Ответ:
Цитата Сообщение от folau Посмотреть сообщение
if(x>140&&y>400&&x<195&&y<430)s=11;
switch(s)
{
case '1' :
присваиваешь целое значение а в switch проверяешь символ
кавычки убери
Код C++
1
2
3
      switch(s)
    {
         case 1 :
Цитата Сообщение от folau Посмотреть сообщение
правда недоделованного.
мое мнение, этот не доделывать а начать заново
слишком уж здесь накручено
например зачем сравнивать условия и присваивать значение s которую используют в switch и тут же обнуляют
почему нельзя все сделать в блоке условий?
Вопрос: Switch не верно работает

Здравствуйте! Столкнулся с одной неприятной штукой. Код у меня может быть немного переполненным лишним и поэтому в нем не сразу разберешься, но, пожалуйста, помогите
Код 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
void Play (int Diamonds)
{
    int random=rand()%2+1; // рандомный выбор игрока
    if (random==1) outtextxy(310,10,"ХОД ПЕРВОГО ИГРОКА");
    else outtextxy(310,10,"ХОД ВТОРОГО ИГРОКА");
    int x=85, y=130, code, count=1;
    setcolor(0); 
    Draw_Outline(y,count);
    while (1)
    {
          code = getch();
          switch (code)
                 {
                       case 77: if (getpixel(x+80,y)!=getpixel(20,20)&&getpixel(x+80,y)!=getpixel(805,y)) {x+=80; count++; setcolor(0); Draw_Outline(y,count); break;} // вправо
                       else break;
                       case 75: if (getpixel(x,y)==getpixel(x-80,y)) {x-=80; Delete_Outline(y, count); count--; break;} // влево
                       else break;
                       case 72: if (getpixel(85,y-80)!=getpixel(85,50)) {Delete_All_Outline(y,count); x=85; y-=80; count=1; setcolor(0); Draw_Outline(y,count); break;} // вверх
                       else {int j=y; if (j!=130) while (j!=130) {j-=80; if (getpixel(85,j)!=getpixel(20,20)) {Delete_All_Outline(y,count); x=85; y=j; count=1; setcolor(0); Draw_Outline(y,count); break;}break;}}
                       case 80: if (getpixel(85,y+80)!=getpixel(85,610)&&getpixel(85,y+50)!=getpixel(85,50)) {Delete_All_Outline(y,count); x=85; y+=80; count=1; setcolor(0); Draw_Outline(y,count); break;} // вниз
                       else {int j=y; if (j!=530) while (j!=530) {j+=80; if (getpixel(85,j)!=getpixel(20,20)) {Delete_All_Outline(y,count); x=85; y=j; count=1; setcolor(0); Draw_Outline(y,count); break;}break;}}
                       case 13: if (random==1) {random++; setcolor(COLOR(255,0,0)); outtextxy(310,3,"ХОД ПЕРВОГО ИГРОКА");} else {random--; setcolor(COLOR(255,0,0)); outtextxy(310,3,"ХОД ВТОРОГО ИГРОКА");} // Enter
                       if (Diamonds!=1) {Delete_All_Outline(y,count); Delete_Diamonds(x,y,count); if (getpixel(85,y)==getpixel(20,20)) Diamonds--;} 
                       else {int N=1,j=85; for (int i=0; i<8; i++) {j+=80; if (getpixel(j,y)!=getpixel(20,20)) N++; else i=8;} if (N==count&&count!=1) {Delete_All_Outline(y,count); setcolor(COLOR(255,0,0)); outtextxy(245,582,"ВЫБЕРИТЕ ДРУГОЕ КОЛИЧЕСТВО АЛМАЗОВ!");}
                       else if (count==1&&N==1) {Victory(random); return;} else {Delete_All_Outline(y,count); Delete_Diamonds(x,y,count);}}
                       x=85; y=130; while(getpixel(85,y)==getpixel(20,20)) y+=80; count=1; setcolor(0); Draw_Outline(y,count); break;
                 }
    }
}
В общем. В этом коде у меня происходит перемещение стрелками по некоторым элементам. Происходит перемещение тем, что у алмазиков появляется более толстый контур, если он есть, значит алмазик выделен, а контур рисует Draw_Outline, удаляет контур Delete_Outline, а Delete_All_Outline удаляет все контуры.
Проблема в том, что после того как я добавил "case 13" оно стало неправильно работать, хотя без него всё было идеально. Как такое может быть? Нажимаю кнопку вниз, а срабатывает кейс с кнопкой Enter, который удаляет алмазики.
Еще у меня есть проблема в том, что при помощи outtextxy текст выводится на черном фоне, можно ли как-то сделать, чтобы он выводился с тем фоном, который в графическом окне?
Весь код программы:
Код 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
#include <conio.h>
#include <ctime>
#include <graphics.h>
#include <cstdlib>
int f=0;
void Draw_Menu ()
{
     setfillstyle(1,COLOR(245,245,220));
     bar(0,0,1000,600);
     setcolor(COLOR(220,220,125));
     line(210,0,200,10);
     line(210,20,200,30);
     line(590,0,600,10);
     line(590,20,600,30);
     line(200,590,210,600);
     line(200,570,210,580);
     line(590,600,600,590);
     line(590,580,600,570);
     line(800,0,800,600); // âåðòèêГ*ëüГ*Г*Гї ëèГ*ГЁГї ìåæäó ìåГ*Гѕ ГЁ èãðîâûì ïîëåì
     line(10,10,200,10); // âåðõГ*ГїГї ëåâГ*Гї ëèГ*ГЁГї ïîëÿ
     line(600,10,790,10); // âåðõГ*ГїГї ГЇГ°Г*ГўГ*Гї ëèГ*ГЁГї ïîëÿ
     line(10,590,200,590); // Г*ГЁГ¦Г*ГїГї ëåâГ*Гї ëèГ*ГЁГї ïîëÿ
     line(600,590,790,590); // Г*ГЁГ¦Г*ГїГї ГЇГ°Г*ГўГ*Гї ëèГ*ГЁГї ïîëÿ
     line(10,10,10,590); // ëåâГ*Гї ëèГ*ГЁГї ïîëÿ
     line(790,10,790,590); // ГЇГ°Г*ГўГ*Гї ëèГ*ГЁГї ïîëÿ
     line(0,0,10,10); // óãîëîê ëåâî-âåðõ
     line(0,600,10,590); // óãîëîê ëåâî-Г*ГЁГ§
     line(800,0,790,10); // óãîëîê ГЇГ°Г*ГўГ®-âåðõ
     line(800,600,790,590); // óãîëîê ГЇГ°Г*ГўГ®-Г*ГЁГ§
     line(200,10,200,30); // âåðõГ*ГїГї ëåâГ*Гї ëèГ*ГЁГї îêîøêГ*
     line(600,10,600,30); // âåðõГ*ГїГї ГЇГ°Г*ГўГ*Гї ëèГ*ГЁГї îêîøêГ*
     line(200,30,600,30); // âåðõГ*ГїГї Г*ГЁГ¦Г*ГїГї ëèГ*ГЁГї îêîøêГ*
     line(210,20,590,20); // âåðõГ*ГїГї âåðõГ*ГїГї ëèГ*ГЁГї îêîøêГ*
     line(210,0,210,20); // âåðõГ*ГїГї ëåâГ*Гї Г°Г*ìêГ* îêîøêГ*
     line(590,0,590,20); // âåðõГ*ГїГї ГЇГ°Г*ГўГ*Гї Г°Г*ìêГ* îêîøêГ*
     line(200,590,200,570); // Г*ГЁГ¦Г*ГїГї ëåâГ*Гї ëèГ*ГЁГї îêîøêГ*
     line(600,590,600,570); // Г*ГЁГ¦Г*ГїГї ГЇГ°Г*ГўГ*Гї ëèГ*ГЁГї îêîøêГ*
     line(210,580,590,580); // Г*ГЁГ¦Г*ГїГї âåðõГ*ГїГї ëèГ*ГЁГї îêîøêГ*
     line(200,570,600,570); // Г*ГЁГ¦Г*ГїГї Г*ГЁГ¦Г*ГїГї ëèГ*ГЁГї îêîøêГ*
     line(210,600,210,580); // Г*ГЁГ¦Г*ГїГї ëåâГ*Гї Г°Г*ìêГ* îêîøêГ*
     line(590,600,590,580); // Г*ГЁГ¦Г*ГїГї ГЇГ°Г*ГўГ*Гї Г°Г*ìêГ* îêîøêГ*
     int x=0, y=0;
     for (int i=0; i<7; i++)
     { // ðèñóåì ГЊГҐГ*Гѕ
         if (i<2||i==3||i>4) {
         line(810,y+11,990,y+11); 
         line(810,y+85,990,y+85);
         line(820,y+21,980,y+21);
         line(820,y+85,980,y+85);
         line(810,y+11,810,y+85);
         line(990,y+11,990,y+85);
         line(820,y+21,820,y+75);
         line(980,y+21,980,y+75);
         line(820,y+75,980,y+75); 
         setfillstyle(1,COLOR(250,250,235));
         floodfill(x+825,y+30,COLOR(220,220,125));
         setfillstyle(1,COLOR(240,240,200));
         floodfill(x+815,y+16,COLOR(220,220,125));}
         y+=84;   
     }
     for (int i=0; i<2; i++)
     { // ðèñóåì ×åëîâåê ГЁ Êîìïüþòåð
         line(x+810,179,x+895,179);
         line(x+820,189,x+885,189);
         line(x+810,253,x+895,253);
         line(x+820,243,x+885,243);
         line(x+810,179,x+810,253);
         line(x+895,179,x+895,253);
         line(x+820,189,x+820,243);
         line(x+885,189,x+885,243);
         setfillstyle(1,COLOR(250,250,235));
         floodfill(x+830,190,COLOR(220,220,125));
         setfillstyle(1,COLOR(240,240,200));
         floodfill(x+815,180,COLOR(220,220,125));
         x+=95;
     }
     x=0; y=0;
     for (int i=0; i<6; i++)
     { // ðèñóåì Êîë-ГўГ® Г*ëìГ*çîâ
         line(x+810,y+347,x+864,y+347);
         line(x+815,y+352,x+859,y+352);
         line(x+810,y+379,x+864,y+379);
         line(x+815,y+374,x+859,y+374);
         line(x+810,y+347,x+810,y+379);
         line(x+815,y+352,x+815,y+374);
         line(x+864,y+347,x+864,y+379);
         line(x+859,y+352,x+859,y+374);
         setfillstyle(1,COLOR(250,250,235));
         floodfill(x+816,y+353,COLOR(220,220,125));
         setfillstyle(1,COLOR(240,240,200));
         floodfill(x+812,y+350,COLOR(220,220,125));
         if (i+1==1||i+1==3||i+1==5)  y+=42;
         else {x+=63; y-=42;}
     }
     setfillstyle(1,COLOR(250,250,235));
     floodfill (400,5,COLOR(220,220,125));
     floodfill (400,595,COLOR(220,220,125));
     floodfill(15,15,COLOR(220,220,125));
     setfillstyle(1,COLOR(240,240,200));
     floodfill(5,10,COLOR(220,220,125));
     floodfill(795,10,COLOR(220,220,125));
     floodfill(10,595,COLOR(220,220,125));
     floodfill(205,10,COLOR(220,220,125)); 
     floodfill(400,25,COLOR(220,220,125));
     floodfill(400,575,COLOR(220,220,125));
     floodfill(595,10,COLOR(220,220,125)); 
     floodfill(610,5,COLOR(220,220,125));
     floodfill(610,595,COLOR(220,220,125));
     floodfill(205,590,COLOR(220,220,125));
     floodfill(595,590,COLOR(220,220,125));
     floodfill(10,5,COLOR(220,220,125));
     outtextxy(850,40, "Г€ Гѓ Гђ ГЂ   ГЌ Г€ ГЊ");
     outtextxy(850,115, "ГЉ Г’ ГЋ   ГЃ Г“ Г„ Г… Г’");
     outtextxy(830,135, "Г‘ ГЋ ГЏ Г… Гђ ГЌ Г€ ГЉ ГЋ ГЊ ?");
     outtextxy(825,208, "×åëîâåê");
     outtextxy(930,208, "Êîìï");
     outtextxy(843,283, "ÑÊÎËÜÊÎ ÊÓ×ÅÊ");
     outtextxy(850,307, "Г‘ ÀËÌÀÇÀÌÈ?");
     outtextxy(834,355, "1");
     outtextxy(897,355, "2");
     outtextxy(960,355, "3");
     outtextxy(834,398, "4");
     outtextxy(897,398, "5");
     outtextxy(960,398, "6");
     outtextxy(867,460, "ГЌ ГЂ Г— ГЂ Г’ Гњ");
     outtextxy(869,545, "Г‚ Г› Г• ГЋ Г„");
}
int Who_Player ()
{
    int x=815, y=250, code;
    setfillstyle (1, COLOR(225,225,140)); 
    floodfill (x,y,COLOR(220,220,125));
    setfillstyle(1,COLOR(240,240,200));
    floodfill (x+96,y,COLOR(220,220,125));
    while (1)
    {
          code = getch();
          switch (code)
                 {
                       case 75:  if (x!=911) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x+=96; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // âëåâî
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x=815; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;}
                       case 77: if (x!=815) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x-=96; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // ГўГЇГ°Г*ГўГ®
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x=911; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;}
                       case 13: switch(x)  // Enter
                                    {
                                         case 815: setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 1;
                                         case 911: setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 2;
                                    }
                 }
    }
}
int How_Many_Diamonds ()
{
    int x=811, y=348, code;
    setfillstyle (1, COLOR(225,225,140)); 
    floodfill (x,y,COLOR(220,220,125));
    while (1)
    {
          code = getch();
          switch (code)
                 {
                       case 77: if (x!=937) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x+=63; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // ГўГЇГ°Г*ГўГ®
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x=811; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;}
                       case 75: if (x!=811) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x-=63; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // âëåâî
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); x=937; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;}
                       case 72: if (y!=348) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); y-=42; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // ââåðõ
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); y=390; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} 
                       case 80: if (y!=390) {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); y+=42; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;} // ГўГ*ГЁГ§
                       else {setfillstyle(1,COLOR(240,240,200)); floodfill (x,y,COLOR(220,220,125)); y=348; setfillstyle (1, COLOR(225,225,140)); floodfill (x,y,COLOR(220,220,125)); break;}
                       case 13: switch(x)  // Enter
                                    {
                                         case 811: if (y==348) {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 1;}
                                         else {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 4;}
                                         case 874: if (y==348) {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 2;}
                                         else {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 5;}
                                         case 937: if (y==348) {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 3;}
                                         else {setfillstyle(1,COLOR(200,170,60)); floodfill (x,y,COLOR(220,220,125)); return 6;}
                                    }
                 }
    }
}                                                                                                                             
Ответ: Меня всегда чрезвычайно умиляют темы типа "неверно работает if", "неверно работает switch", "неверно работает return", и так далее. Нет бы сказать - "Почему-то в моих кривых руках эти штуки работают не так, как я ожидал"
Вопрос: Как правильно использовать switch?

Как правильно пользоваться Switch?
Если s от 0 до 10 должно выполняться одно действие, если от 10 до 100 - другое и т.д.
C++
1
2
3
4
5
6
7
8
9
10
11
12
           switch (s){
                case (s=0-10):  if (MainForm->Color==clRed){
                                             MainForm->Color=clBlue;
                                      else MainForm->Color=clRed;
                                      }
                        break;
                case (s=10-100):
                        break;
                case (s=100-1000):
                        break;
                case (s>1000):
        }
Конкретно ошибка тут - case (s=0-10). Как правильно записать?

Добавлено через 3 минуты
Если switch не подходит для такой задачи лучше сразу скажите.)
Ответ:
Сообщение от Mihatron
Если switch не подходит для такой задачи
Можно и switch при желании...
C++
1
2
3
4
5
6
7
8
9
      int s = 385; __int64 rez=0, pp=1;
 
      while (s >= pp) { pp *= 10; rez++; } 
      switch(rez)
      { case 1: /* somesing1 */; break;  //  1-10
        case 2: /* somesing2 */; break;  //  10-100
        case 3: /* somesing3 */; break;  //  100-1000
        case 4: /* somesing4 */; break;  //  > 1000
      }