#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 - результат
Комментариев нет:
Отправить комментарий