Пожалуй, понятие переменной в программировании является одним из самых базовых. Самое простое определение переменной — это поименованная ссылка на участок памяти, который содержит значение определенного типа. Ключевое в данном случае то, что ссылка является поименованной. Имя может состоять из различных символов, разрешенных допустимым алфавитом языка программирования. «Разрешенных» означает то, что не всякая последовательность символов и в не в любом сочетании может быть именем переменной.
Например, для языка программирования Java существуют следующие ограничения на имя переменной:
- Имя переменной не должно начинаться с цифры
- Имя переменной не должно совпадать ни с одним из ключевых слов Java
- Имя переменной не может содержать пробельные символы
- Имя переменной должно начинаться с буквы или символа «_»
- Имя переменной регистрозависимо
Примеры имен переменных:
abc — корректное имя;
Abc — корректное имя;
some_variable — корректное имя;
_123 — корректное имя;
234ddd — некорректное имя (начинается с цифры);
%234df — некорректное имя (начинается с неразрешенного символа);
some var — некорректное имя (содержит пробелы)
var — некорректное имя (соответствует ключевому слову var)
Еще один важный аспект, связанный с переменными — это ее тип. Тип переменной определяет на какие данные может ссылаться переменная и какие действия можно совершать со значением. Тип переменной может быть простым (примитивным) или сложным. Примеры простых типов — целое число, число с плавающей запятой, логическое значение, символ и тд. Сложные типы — типы, которые могут состоять из других типов (см понятие класса в ООП).
Например, тип переменной «целое число» определяет, что над данной переменной можно совершать различные арифметические действия — сложение, вычитание, умножение, деление и тд. Для логических переменных определены логические операции И, ИЛИ, НЕ, Исключающее ИЛИ и др.
Также тип переменной накладывает другие ограничения. Например, в языке Java для целых чисел есть несколько примитивных чисел — byte, short, int, long. Их отличие состоит в том, какое максимальное число может хранить в себе переменная данного типа, а значит и какой размер памяти она может занимать в компьютере. Для byte это диапазон чисел от -127 до 127. Размер byte равен 1 байт памяти, что соответвует 2 в 8 степени бит в двоичной системе (соответствует 256 различных значений, но т.к. старший бит отведен под знак числа, то byte может хранить диапазон как в плюс, так и в минус).
Аналогичная логика используется и для других целочисленных типов — short, int, long — c кратным увеличением в 2, 4, 8 раз по хранимой памяти и экспоненциальным увеличением хранимых значений (например, число long может содержать в себе от — 9,223,372,036,854,775,808 (-2 в 63 степени) до 9,223,372,036,854,775,807 (включительно) (2 в 63 степени — 1)).
Сложные типы могут состоять из простых или других вложенных сложных типов. Соответственно, размер в памяти для значений сложного типа определяется размерами тех типов, из которых состоит сложный тип.
Над переменными возможны следующие действия (примеры кода на языке Java):
1) Объявление переменной. Перед использованием переменной её нужно объявить. Объявление включает указание имени переменной и, в зависимости от языка, её типа данных.
int y; // явно указан тип данных
2) Присваивание значения. После объявления можно присвоить переменной начальное значение или изменить его позже.
int x = 5; // Присваиваем значение 5 переменной x
x = x + 3; // Изменяем значение x, добавляя 3
3) Использование переменной. Переменные могут использоваться в выражениях, условиях, циклах и других конструкциях языка программирования.
if (x > 10)
System.out.println("x больше 10");
4) Перезапись значения. Переменные могут многократно менять свои значения в зависимости от логики программы.
age = 25;
age = 26; // Значение переменной age изменено
Итак, почему переменные важны?
- Читаемость кода. Использование осмысленных имён переменных делает код более понятным и поддерживаемым.
- Хранение данных. Они позволяют сохранять информацию для последующего использования.
- Гибкость. Значения переменных можно изменять в зависимости от условий или входных данных.
Таким образом, переменная является фундаментальным понятием в программировании, без которого невозможно было бы создавать сложные и динамические приложения.