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