Операторы присваивания

Как только определены переменные и константы, которые будут использоваться в программе, программист может приступать непосредственно к процессу описания алгоритма, который осуществляется с помощью исполняемых операторов. Основными исполняемыми операторами являются операторы присваивания (assignment statement), в результате выполнения которых переменной присваивается некоторое значение (или, более точно, значение сохраняется в ячейке памяти, связанной с этой переменной). Синтаксические структуры с такими операторами обычно состоят из переменной, за которой следуют символ операции присваивания, и выражение, обозначающее значение, которое нужно присвоить. Эта структура означает, что выражение нужно вычислить, а результат сохранить как значение данной переменной. Например, утверждение

Z = X + Y:

в языках С, C++, С# и Java означает, что сумму X и Y нужно присвоить переменной Z. В языках Ada и Pascal это утверждение будет иметь вид:

Z:= X + Y;

Обратите внимание на то, что эти выражения отличаются только оператором присваивания: в языках С, C++ и Java это просто знак равенства, а в языках Ada и Pascal — двоеточие и знак равенства. Возможно, самое наглядное обозначение для оператора присваивания используется в языке APL (A Programming Language), который был создан Кеннетом Иверсеном (Kenneth E. Iverson) в 1962 году. Для записи операции присваивания в этом языке применяется стрелка. Таким образом, приведенное выше выражение в APL (как и в нашем псевдокоде) можно записать так: Z <- X + Y.

Основное качество операторов присваивания состоит в том, что в правую часть высказывания можно поместить любое выражение. Например, алгебраическое выражение с арифметическими операциями сложения, вычитания, умножения и деления, которые обычно обозначаются символами +, -, * и / соответственно. Однако эти выражения по-разному интерпретируются в языках программирования. Например, результатом выражения 2*4 + 6/2 будет 14, если вычислять его справа налево, или 7, если вычислять его слева направо. Эта неоднозначность обычно разрешается с помощью введения приоритетов (старшинства) операторов (operator precedence). Согласно традиционным правилам алгебры операции умножения и деления имеют приоритет над операциями сложения и вычитания.

То есть умножение и деление выполняются в первую очередь. Поэтому результатом вычисления приведенного выше выражения будет 11. В большинстве языков для того, чтобы задать другую последовательность выполнения операторов, используются скобки. Например, значение выражения

2 х (4 + 6)/2

равно 10.

Выражения оператора присваивания могут содержать не только алгебраические операции. Например, если переменные Fi rst и Last представляют собой цепочки символов, то после выполнения следующей команды, записанной на языке FORTRAN: Both = First // Last

переменной Both будет присвоен результат конкатенации этих двух цепочек. То есть если переменные First и Last равны abra и cadabra соответственно, то переменная Both будет равна цепочке abracadabra.

Многие языки программирования позволяют использовать один символ для обозначения нескольких операций. В таких случаях значение символа определяется типом операндов. Например, символ «+» обычно обозначает операцию сложения, когда его операндами являются числа. Но в языке Java этот символ также обозначает конкатенацию, когда его операндами являются цепочки символов. Такое использование символов операций называется перегрузкой операций (overloading).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: