Променлива в програмирането

От Администрация и управление
Направо към навигацията Направо към търсенето

В областта на програмирането, променливата (variable), в най-общ смисъл, е нещо като "контейнер за стойности", които могат да се получат в хода на изпълнение на даден алгоритъм. Променливите величини или за краткост променливи могат да приемат различни стойности по време на действието на програмата. Всяка променлива има име и стойност. В програмирането имената на променливите са наричат идентификатори.

Определение

Една типична програма използва различни стойности, които се променят по време на нейното изпълнение. Например, създаваме програма, която извършва пресмятания. Стойностите, въведени от един потребител, ще бъдат очевидно различни от тези, въведени от друг потребител. Това означава, че когато създаваме програмата, ние не знаем всички възможни стойности, които ще бъдат въведени в нея. Това от своя страна изисква да можем да обработим стойностите, които потребителите евентуално биха въвели. Нека създадем програма, чиято цел е да извършва пресмятания. Когато потребителят въведе нова стойност, която ще участва в процеса на пресмятане, ние можем я да съхраним (временно) в паметта на нашия компютър. Стойностите в тази част на паметта се променят регулярно. Това е довело до наименованието им – променливи.

Променливата е контейнер на информация, който може да променя стойността си. Тя осигурява възможност за:

  • Запазване на информация;
  • Извличане на запазената там информация;
  • Модифициране на запазената там информация.

Характеристика

Променливите се характеризират с:

  • Име;
  • Тип (на запазената в тях информация);
  • Стойност (запазената информация).

Именуване на променлива

Правила

Когато искаме компилаторът да задели област в паметта за някаква информация, използвана в програмата ни, трябва да зададем име, което служи като идентификатор и позволява да се реферира нужната ни област от паметта. Името може да бъде всякакво по наш избор, но трябва да следва определени правила:

  • Имената на променливите се образуват от буквите a-z, A-Z, цифрите 0-9, както и символите $ и _. По принцип е допустимо да се ползват и букви от кирилицата, но това трябва да се избягва.
  • Имената на променливите не може да започват с цифра.
  • Имената на променливите не могат да съвпадат със служебна дума (keyword) от езика Java:

Ppr.png

Примери

Правилно име:

  • name
  • first_Name
  • _name1

Неправилно име (ще доведе до грешка при компилация):

  • 1 (цифра)
  • if (служебна дума)
  • 1name (започва с цифра)

Именуване на променливи

Препоръки

Ще дадем някои препоръки за именуване, тъй като не всички позволени от компилатора имена са подходящи за нашите променливи.

  • Имената трябва да са описателни – да обясняват за какво служи дадената променлива. Примерно за име на човек подхо­дящо име е personName, а неподходящо име е a37.
  • Трябва да се използват само латински букви.
  • В Java e прието променливите да започват винаги с малка буква и всяка следваща дума да започва с главна буква. Примерно: firstName, a не firstname или first_name.
  • Името трябва да не е нито много дълго, нито много късо.
  • Трябва да се внимава за главни и малки букви, тъй като Java прави разлика между тях.

Примери

Ето няколко примера за добре именувани променливи:

  • firstName
  • age
  • startIndex
  • lastNegativeNumberIndex

Ето няколко примера за лошо именувани променливи (макар и имената да са коректни от гледана точка на компилатора на Java):

  • _firstName
  • last_name
  • AGE
  • Start_Index
  • lastNegativeNumber_Index

Променливите трябва да имат име, което обяснява накратко за какво служат. Когато една променлива е именувана с неподходящо име, това силно затруднява четенето на програмата и нейното последващо проме­няне (след време, когато сме забравили как работи тя).

ВАЖНО!Стремете се винаги да наименувате променливите с кратки, но достатъчно ясни имена, като следвате винаги правилото, че от името на променливата трябва да става ясно за какво се използва.

Деклариране на променливи

Когато декларираме променлива, ние:

  • Задаваме нейния тип;
  • Задаваме нейното име (наречено идентификатор);
  • Може да дадем начална стойност, но не е задължително.

Ето какъв е синтаксисът за деклариране на променливи:

<тип данни><идентификатор> [= <инициализация>]

Ето няколко примера за деклариране на променливи и задаване на стойностите им:

byte centuries = 20;

short years = 2000;

int days = 730480;

long hours = 17531520;

float floatPI = 3.141592653589793238f;

double doublePI = 3.141592653589793238;

boolean isEmpty = true;

char symbol = ‘a’;

String firstName = “Ivan”;

Присвояването

Присвояването на стойност на променлива представлява задаване на стойност на същата. Тази операция се извършва от оператора за присвояване “=“. От лявата страна на оператора се изписва типа на променливата и нейното име, а от дясната страна – стойността.

Пример

Ето няколко примера за присвояване на стойност на променлива:

int firstValue = 5;

int secondValue;

int thirdValue;

// Using an already declared variable:

secondValue = firstValue;

// The following cascade calling assigns 3 to firstValue and

// then firstValue to thirdValue, so both variables have

// the value 3 as a result:

// Avoid this!

thirdValue = firstValue = 3;

Инициализация на променливи

След като вече се запознахме как се декларира променлива, ще пристъпим към задаване на стойност по време на деклариране. Извърш­вайки тази операция, ние всъщност инициализираме променливата, задавайки стойност на последната. Всеки тип данни има стойност по подразбиране (инициализация по подразбиране). В таблицата отдолу може да ги видим.

Ppr1.png

Примери

Ето един пример за инициализация на променливи:

// The following assigns empty String to the variable “name“:

String name = new String(); // name = “”

// This is how we use a literal expression

float heightInMeters = 1.74f;

// Here we use an already initialized variable

String greeting = “Hello World!”;

String message = greeting;

Целочислени типове

Определение

Целочислените типове отразяват целите числа и биват – byte, short, int и long. Нека ги разгледаме един по един в реда, в който ги изброихме. Първи в нашия списък е целочисленият тип byte. Той е 8-битов знаков тип, което означава, че броят на възможните стойности е 2 на степен 8, т.е. 256 възможни положителни и отрицателни стойности общо. Стой–ността по подразбиране е числото 0. Минималната стойност, която заема, е -128, а максималната +127. Вторият по ред в нашия списък е целочисленият тип short. Той е 16-битов знаков тип. В параграфа за типа byte по-горе изяснихме какво означава зна­ков тип и какво значение отдава броят на битовите. Стой­­­ността по подразбиране е числото 0. Минималната стойност, която заема е числото -32768, а максималната – +32767. Следващият целочислен тип, който ще разгледаме е типът int. Той е 32- битов целочислен знаков тип. Както виждаме, с нарастването на битовете нарастват и възможните стойности, които даден тип може да заема. Стой­ността по подразбиране е числото 0. Минималната стойност, която заема е -2 147 483 648, а максималната +2 147 483 647. Последният целочислен тип, който ни предстои да разгледаме, е типът long. Той е 64-битово цяло число със знак със стойност по подразбиране 0L. Знакът L се указва, че числото е от тип long (иначе се подразбира int). Минималната стойност, която типът long заема, е -9 223 372 036 854 775 808, а максималната +9 223 372 036 854 775 807.

ВАЖНО! Когато можем да използваме типът byte вместо типа int или long, не се колебайте да използвате byte. Това ще спести от заеманата в компютъра памет.

Пример

Нека разгледаме един пример, в който декларираме няколко променливи от познатите ни целочислени типове, инициализираме ги и ги отпечатваме на конзолата. Какво представлява деклариране и инициализация на променлива, можем да прочетем по-долу в секциите, наименувани “Декла­риране на променливи” и “Инициализация на променливи“.

// Declare some variables

byte centuries = 20;

short years = 2000;

int days = 730480;

long hours = 17531520;

// Print the result on the console

System.out.println(centuries + ” centuries is “ + years +

” years, or “ + days + ” days, or “ + hours + ” hours.”);

В разгледания по-горе пример демонстрираме използването на целочис­лените типове. За малки числа използваме типът byte, а за много големи – це­ло­численият тип long. Нека видим резултата от горния фрагмент код отдолу.

20 centuries is 2000 years, or 730480 days, or 17531520 hours.

Булев тип

Определение

Булевия тип се декларира с ключовата дума boolean. Има две стойности, които може да приема – true и false. Стойността по подразбиране е false. Използва се най-често в логически изрази.

Пример

Нека разгледаме един пример, в който декларираме няколко променливи от познатите ни типове, инициализираме ги, сравняваме ги и отпечатваме резултата на конзолата. Дали двете променливи имат еднаква стойност ще видим, ако погледнем по-долу:

// Declare some variables

int a = 1;

int b = 2;

// Which one is greater?

boolean greaterAB = (a > b);

// Is it equal to 1?

boolean equalA1 = (a == 1);

// Print the result on the console

if (greaterAB) {

System.out.println(“A > B”);

} else {

System.out.println(“A <= B”);

}

System.out.println(“greaterAB = “ + greaterAB);

System.out.println(“equalA1 = “ + equalA1);

Нека видим резултата от горния фрагмент код:

A <= B

greaterAB = false

equalA1 = true

В примера декларираме две променливи от тип int, сравняваме ги и резултата го присвояваме на променливата от булев тип greaterAB. Аналогично за променливата equalA1. Ако променливата greaterAB е true, на конзолата се отпечатва А > B, в противен случай B > A.

Символен тип

Определение

Символният тип представя символна информация. Декларира се с ключо­вата дума char. На всеки символ отговаря цяло число. За да илюстрираме казаното за символния тип, нека разгледаме примерите по-долу.

Пример

Нека разгледаме един пример, в който декларираме една променлива от тип char, инициализираме я със стойност ‘a’, ‘b’ и ‘A’ и респективно отпечатваме резултата на конзолата:

// Declare a variable

char symbol = ‘a’;

// Print the result ot the console

System.out.println(

“The code of ‘” + symbol + “‘ is: “ + (int) symbol);

symbol = ‘b’;

System.out.println(

“The code of ‘” + symbol + “‘ is: “ + (int) symbol);

symbol = ‘A’;

System.out.println(

“The code of ‘” + symbol + “‘ is: “ + (int) symbol);

Нека видим резултата от горния фрагмент код отдолу:

The code of ‘a’ is: 97

The code of ‘b’ is: 98

The code of ‘A’ is: 65

Вижте още

Източници

Външни препратки