|
|
| Ред 1: |
Ред 1: |
| | В областта на програмирането, '''променливата''' (variable), в най-общ смисъл, е нещо като '''"контейнер за стойности"''', които могат да се получат в хода на изпълнение на даден алгоритъм. | | В областта на програмирането, '''променливата''' (variable), в най-общ смисъл, е нещо като '''"контейнер за стойности"''', които могат да се получат в хода на изпълнение на даден алгоритъм. |
| − | Променливите величини или за краткост променливи могат да '''приемат различни стойности по време на действието на програмата'''. Всяка променлива има име и стойност. В програмирането имената на променливите са наричат [[идентификатор]]и. | + | Променливите величини или за краткост променливи могат да '''приемат различни стойности по време на действието на програмата'''. Всяка променлива има име и стойност. В програмирането имената на променливите са наричат идентификатори. |
| − | ==Определение== | + | ==Същност== |
| | Една типична програма използва различни стойности, които се променят по време на нейното изпълнение. Например, създаваме [[програма]], която извършва пресмятания. Стойностите, въведени от един потребител, ще бъдат очевидно различни от тези, въведени от друг потребител. Това означава, че когато създаваме програмата, ние не знаем всички възможни стойности, които ще бъдат въведени в нея. Това от своя страна изисква да можем да обработим [[стойност]]ите, които потребителите евентуално биха въвели. | | Една типична програма използва различни стойности, които се променят по време на нейното изпълнение. Например, създаваме [[програма]], която извършва пресмятания. Стойностите, въведени от един потребител, ще бъдат очевидно различни от тези, въведени от друг потребител. Това означава, че когато създаваме програмата, ние не знаем всички възможни стойности, които ще бъдат въведени в нея. Това от своя страна изисква да можем да обработим [[стойност]]ите, които потребителите евентуално биха въвели. |
| | Нека създадем програма, чиято цел е да извършва пресмятания. Когато потребителят въведе нова стойност, която ще участва в [[процес]]а на пресмятане, ние можем я да съхраним (временно) в паметта на нашия компютър. Стойностите в тази част на паметта се променят регулярно. Това е довело до наименованието им – променливи. | | Нека създадем програма, чиято цел е да извършва пресмятания. Когато потребителят въведе нова стойност, която ще участва в [[процес]]а на пресмятане, ние можем я да съхраним (временно) в паметта на нашия компютър. Стойностите в тази част на паметта се променят регулярно. Това е довело до наименованието им – променливи. |
| Ред 10: |
Ред 10: |
| | *Модифициране на запазената там информация. | | *Модифициране на запазената там информация. |
| | | | |
| − | ==Характеристика==
| |
| | Променливите се характеризират с: | | Променливите се характеризират с: |
| | *Име; | | *Име; |
| | *Тип (на запазената в тях информация); | | *Тип (на запазената в тях информация); |
| | *Стойност (запазената информация). | | *Стойност (запазената информация). |
| − |
| |
| − | ==Именуване на променлива==
| |
| − | ===Правила===
| |
| − | Когато искаме компилаторът да задели област в паметта за някаква информация, използвана в програмата ни, трябва да зададем име, което служи като идентификатор и позволява да се реферира нужната ни област от паметта.
| |
| − | Името може да бъде всякакво по наш избор, но трябва да следва определени правила:
| |
| − | *Имената на променливите се образуват от буквите a-z, A-Z, цифрите 0-9, както и символите $ и _. По принцип е допустимо да се ползват и букви от [[кирилица]]та, но това трябва да се избягва.
| |
| − | *Имената на променливите не може да започват с [[цифра]].
| |
| − | *Имената на променливите не могат да съвпадат със служебна дума (keyword) от езика Java:
| |
| − |
| |
| − | [[file: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;
| |
| − |
| |
| − | ==Инициализация на променливи==
| |
| − | След като вече се запознахме как се декларира променлива, ще пристъпим към задаване на стойност по време на деклариране. Извършвайки тази операция, ние всъщност инициализираме променливата, задавайки стойност на последната.
| |
| − | Всеки тип [[Анализ на данните|данни]] има стойност по подразбиране (инициализация по подразбиране). В [[таблица]]та отдолу може да ги видим.
| |
| − |
| |
| − | [[file: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
| |
| − |
| |
| | ==Вижте още== | | ==Вижте още== |
| | *[[Компютър]] | | *[[Компютър]] |