C#: Приоритет операций
Посмотрите внимательно на выражение 2 + 2 * 2 и посчитайте в уме ответ.
Правильный ответ: 6.
Если у вас получилось 8, то этот урок для вас. В школьной математике мы изучали понятие «приоритет операции». Приоритет определяет то, в какой последовательности должны выполняться операции. Например, умножение и деление имеют больший приоритет, чем сложение и вычитание: 2 + 3 * 2 вычислится в 8.
Но нередко вычисления должны происходить в порядке, отличном от стандартного приоритета. В сложных ситуациях приоритет можно (и нужно) задавать круглыми скобками, точно так же, как в школе, например: (2 + 2) * 2.
Скобки можно ставить вокруг любой операции. Они могут вкладываться друг в друга сколько угодно раз. Вот пара примеров:
Console.WriteLine(3 * (4 - 2)); // => 6
Console.WriteLine(7 * 3 + (4 / 2) - (8 + (2 - 1))); // => 14Иногда выражение сложно воспринимать визуально. Тогда можно расставить скобки, не повлияв на приоритет. Например, задание из прошлого урока можно сделать немного понятнее, если расставить скобки.
Было:
Console.WriteLine(8 / 2 + 5 - -3 / 2); // => 10Стало:
Console.WriteLine(((8 / 2) + 5) - (-3 / 2)); // => 10Запомните: код пишется для людей, потому что код будут читать люди, а машины будут только исполнять его. Для машин нет «более» понятного или «менее» понятного кода, независимо от того, является ли код корректным или нет.
Задание
Дано выражение 70 * 3 + 4 / 8 + 2.
Расставьте скобки так, чтобы оба сложения (3 + 4 и 8 + 2) высчитывались в первую очередь. Выведите результат на экран.
C#: Приоритет операций
Посмотрите внимательно на выражение 2 + 2 * 2 и посчитайте в уме ответ.
Правильный ответ: 6.
Если у вас получилось 8, то этот урок для вас. В школьной математике мы изучали понятие «приоритет операции». Приоритет определяет то, в какой последовательности должны выполняться операции. Например, умножение и деление имеют больший приоритет, чем сложение и вычитание: 2 + 3 * 2 вычислится в 8.
Но нередко вычисления должны происходить в порядке, отличном от стандартного приоритета. В сложных ситуациях приоритет можно (и нужно) задавать круглыми скобками, точно так же, как в школе, например: (2 + 2) * 2.
Скобки можно ставить вокруг любой операции. Они могут вкладываться друг в друга сколько угодно раз. Вот пара примеров:
Console.WriteLine(3 * (4 - 2)); // => 6
Console.WriteLine(7 * 3 + (4 / 2) - (8 + (2 - 1))); // => 14Иногда выражение сложно воспринимать визуально. Тогда можно расставить скобки, не повлияв на приоритет. Например, задание из прошлого урока можно сделать немного понятнее, если расставить скобки.
Было:
Console.WriteLine(8 / 2 + 5 - -3 / 2); // => 10Стало:
Console.WriteLine(((8 / 2) + 5) - (-3 / 2)); // => 10Запомните: код пишется для людей, потому что код будут читать люди, а машины будут только исполнять его. Для машин нет «более» понятного или «менее» понятного кода, независимо от того, является ли код корректным или нет.
Задание
Дано выражение 70 * 3 + 4 / 8 + 2.
Расставьте скобки так, чтобы оба сложения (3 + 4 и 8 + 2) высчитывались в первую очередь. Выведите результат на экран.
Ваше упражнение проверяется по этим тестам
#load "/src/Init.csx"
#load "/src/RedirectOutput.csx"
#load "Exercise.csx"
;
using PowerAssert;
var output = capturedConsoleOutput.ToString().Trim();
Console.SetOut(originalStdOut);
Console.Write(capturedConsoleOutput);
PAssert.IsTrue(() => output == "49");Решение учителя откроется через:
20:00
