Объясните пожалуйста почему данный код, при использование постфиксного декремента
int a = 5;//Тут 4
int b = a-- - (a + 2);//Выполняем сначала в скобках так как приоритет
//в скобках 7 и потом отнимает 4 + 7 = (-3)
//Где я припустил
Console.WriteLine($"Var a: {a}
Var b: {b}");
string key = Console.ReadLine();
Выдает в переменной b результат -1
Когда при такой записи
int a = 5;//Тут после операции 6
int b = a++ + (a + 2);
//Здесь 6 + (5+2) = 13
Console.WriteLine($"Var a: {a}
Var b: {b}");
string key = Console.ReadLine();
Результат a=6 b=13
Ответ
Операнды вычисляются в том порядке, в каком они идут в выражении:
int a = 5;
int b = a-- - (a + 2);
a -> 5 - первый член в выражении
a-- -> a становится 4
(a+2) -> 6 - второй член в выражении
5 - 6 -> -1 - результат
int a = 5;
int b = a++ + (a + 2);
a -> 5 - первый член в выражении
a++ -> a становится 6
(a+2) -> 8 - второй член в выражении
5 + 8 -> 13 - результат
Комментариев нет:
Отправить комментарий