как использовать несколько значений в случае переключения

Моя программа

int main() {
int i = 10;
int j = 20;
switch (i++, j--) {
case 10:
printf("The number is 10");
break;
case 20:
printf("The number is 20");
break;
default:
printf("Input Invalid");
}
return 0;
}

и я получаю вывод The number is 20, Мне нужно знать, как это работает, ты можешь объяснить. Благодарю.

-1

Решение

Вы используете оператор запятой Вот. В языках программирования C и C ++ оператор запятой (представлен токеном ,) — это двоичный оператор, который оценивает свой первый операнд и отбрасывает результат, а затем оценивает второй операнд и возвращает это значение (и тип).

таким образом

switch (i++, j--) {...}

эквивалентно

i++;
switch (j--) {...}
3

Другие решения

Я считаю, что вы используете корпус переключателя ненадлежащим образом. Вы принимаете две переменные в качестве аргумента,

switch(a++ , b--)
{
case(a>b):
case(b<a):
case(a==b):
}

Если вы указываете только одно число и два аргумента, компилятор не знает, что с ними делать.

Это мой опыт, если вы используете язык на основе c.

0