Наредба доделе

При упознавању са наредбом доделе важно је објаснити доделу облика x = x + 1; која може да буде збуњујућа због сличности са математичком једначином која нема решења.
     Из тог разлога је потребно указати на разлику између знака једнакости који се користи у саставу наредбе доделе вредности (" = ") и знака једнакости који се користи за означавање релације "једнако" (" == ").
     У C# наредба x = x + 1; представља једну наредбу доделе јер се променљивој x додељује њена вредност увећана за 1 и то је сада нова вредност променљиве x.

Знак једнакости који учествује у овој наредби " = " називамо оператором доделе. To je oператор најнижег приоритета, a aсоцијативност je здесна налево.


Општа синтакса наредбе доделе:

< променљива > = < израз >

На левој страни је име променљиве којој се додељује вредност, а на десној страни је конкретна вредност, израз или функција чија се вредност додељује променљивој.
Променљива и вредност се морају слагати по типу.


Наредба доделе се извршава у два корака:

  1. прво се одређује вредност израза са десне стране оператора доделе

  2. израчуната вредност се додељује променљивој са леве стране оператора доделе, односно, добијена вредност се уписује у меморијску локацију која је резервисана за чување те променљиве

Напомена: Свака наредба доделе вредности променљивој поништава њен претходни садржај јер променљива може чувати само једну вредност.

Примери наредбе доделе:

  • x = 5;
  • x = x + 2;
  • a = b * 3 + 78;
  • p = (a > 5) && (a < 20);
  • s ="Ja se zovem " + ime + " " + prezime;


    Приметимо да се у другом примеру променљива x појављује, како у изразу са десне стране, тако и на месту променљиве којој се додељује вредност.

Наредбу доделе облика:

< променљива > = < променљива > < оп > < израза >,

где је < променљива > на левој и десној страни иста, а < оп > један од оператора +, -, *, / или % , називамо сложеном наредбом доделе. Можемо је записати коришћењем сложених оператора доделе <оп>= на следећи начин:

< променљива > < оп > = < израза >


Примери сложене наредбе доделе:

  • x *= 5;   што је еквивалентно са   x = x * 5;
  • a -= 2 + y;   што је еквивалентно са    a = a - (2 + y);
  • x += 3 - (y - 6) + 5;   што је еквивалентно са   x = x + 3 * (y - 6) + 5;
  • a /= b + c;    што је еквивалентно са   a = a / (b + c);

Пример 1. Напиши наредбу која променљивој:

a) x додељује вредност -77.7
b) n додељује збир вредности променљиве n и броја 5
c) s додељује аритметичку средину реалних бројева a,b и c
d) c додељује дужину хипотенузе правоуглог троугла на основу дужина катета a и b
e) r додељује дужину растојања између тачака са координатама (x1 ,y1 ) и (x2 ,y2 )


Пример 2. Шта ће бити вредност променљивих након извршења следећих наредби:


//Deklarisanje i inicijalizacija vrednosti promenljive a
int a = 4;
//Deklarisanje i inicijalizacija vrednosti promenljive b
int b = 7;
//Promenljivoj a dodeljujemo vrednost izraza na desnoj strani
a = 2 * a - b;
//Promenljivoj b dodeljujemo vrednost izraza na desnoj strani
b = 7 * a - b;
//Promenljivoj a dodeljujemo vrednost izraza na desnoj strani
a = a - a;