Арифметические выражения
Выражение состоит из операторов и операндов. Операндами могут быть, в свою очередь, выражения или одни из его частных случаев – числа (константы) или переменные, операторы обозначают выполняемые над ними действия (+ сложение, - вычитание, * умножение, / деление (для целых операндов – целая часть от деления), % остаток от деления (только для целых ), …).
Все основные операции языка C# можно разбить на следующие группы:
арифметические операции;
логические операции;
операции отношения;
операции с битами информации;
операции со строками;
операции присваивания;
операция sizeof;
условная операция (?:).
Примеры выражений:
(a + 0.12)/6
x && || !z
(t * Math.sin(x)-1.05e4)/((2 * k + 2) * (2 * k + 3))
В выражение могут входить операнды различных типов, чего, строго говоря, не следует допускать. Если операнды имеют одинаковый тип, то результат операции будет иметь тот же тип. Если операнды различного типа, перед вычислениями выполняются преобразования типов по определенным правилам, обеспечивающим преобразование более коротких типов в более длинные для сохранения значимости и точности.
Порядок вычисления выражений определяется рангом (приоритетом) входящих в него операций (табл. 3). Принятый в C# ранг операций наиболее близок к математическому, также как и принятый порядок их вычисления. Так, умножение и деление (мультипликативные операции) старше сложения и вычитания (аддитивные операции). Унарные операции + и – старше бинарных, т.е., знак операнда вычисляется в первую очередь. Операции типа присваивания младше прочих, что позволяет выполнить их только после того, как значение выражения вычислено полностью. Операции отношения младше арифметических операций, что позволяет использовать естественную запись логических выражений, например, x>0 && y>0. Здесь в первую очередь вычисляются значения отношений, которые затем являются операндами конъюнкции.
Таблица 1 – Порядок вычисления выражений
Do'stlaringiz bilan baham: |