Моя программа
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
, Мне нужно знать, как это работает, ты можешь объяснить. Благодарю.
Вы используете оператор запятой Вот. В языках программирования C и C ++ оператор запятой (представлен токеном ,
) — это двоичный оператор, который оценивает свой первый операнд и отбрасывает результат, а затем оценивает второй операнд и возвращает это значение (и тип).
таким образом
switch (i++, j--) {...}
эквивалентно
i++;
switch (j--) {...}
Я считаю, что вы используете корпус переключателя ненадлежащим образом. Вы принимаете две переменные в качестве аргумента,
switch(a++ , b--)
{
case(a>b):
case(b<a):
case(a==b):
}
Если вы указываете только одно число и два аргумента, компилятор не знает, что с ними делать.
Это мой опыт, если вы используете язык на основе c.