Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 11.313 pregleda

Najnovija ↓

n++ i ++n razlika? 12.05.2016. u 13:03 · pre 127 meseci
izmenjeno 1 put, poslednji put gojic 12.05.2016. u 13:28
  1. gojic12.05.2016. u 13:28zapis iz teksta poruke
#1
Imam jedno teorijsko pitanje koja je u stvari razlika izmedju "post increment n++" i "pre increment ++n".

Znam sta znace i sta rade, al mi nije jasno zasto to rade.

npr:
x = 0;
y = broj[x++]; znam da dobijam nulu

x = 0;
y = broj[++x]; znam da dobijam 1

zasto u prvom slucaju vraca originalnu vrednost a u drugom dodaje za jedan kao sto bi i trebalo?

i druga stvar,mozda glupo pitanje,al zasto ne bih koristio

var x = 0;
x++;
document.write(num); dobijam 1

Nekako mi logicnije da radim ovako.

Da li ima neke prakticne razlike izmedju ova dva nacina,mozda je ovaj prvi nacin uredniji ili je svejedno, i zavisi iskljucivo od onogo koji kodira i njegove licne navike ili zelje?

Hvala
Re: n++ i ++n razlika? 12.05.2016. u 13:22 · pre 127 meseci #2
Code:

x=0;
y=x++;


rezlutat je y=0 i x=1

Code:

x=0;
y=++x;


rezultat je y=1 i x=1

Znači razlika je da li se na x dodaje 1 PRE ILI POSLE doeljivanja vrednosti iksa ipsilonu.

To je isto kao da pitaš, u čemu je razlika između sledeća dva koda

Code:

x=0;
y=x
x=x+1;


i

Code:

x=0;
x=x+1;
y=x;


Razlika je u redosledu operacija...
Re: n++ i ++n razlika? 12.05.2016. u 13:54 · pre 127 meseci #3
Ili, ako ce ti tako biti lakse, mozes posmatrati operator ++ kao funckiju sa potpisom (pseudo kod)
int ++(ref int x)

(ovde namerno ne koristim JS nacin pisanja funkcije posto je u JS-u to manje striktno).
Dakle, funkcija, prima broj, i vraca broj.

U slucaju da koristis:
y=x++;

to je kao da je u pitanju funkcija:
Code:

int ++(ref int x)
{
    x = x + 1;
    return x;
}


u slucaju:
y = ++x;

to je kao da je funkcija:
Code:
int ++(ref int x)
{
    x = x + 1;
    return x - 1;
}
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: n++ i ++n razlika? 12.05.2016. u 13:59 · pre 127 meseci #4
Sve u svemu, jedno veliko sr*nje koje se bez ikakvog razloga kopira iz jezika u jezik.
Re: n++ i ++n razlika? 12.05.2016. u 14:06 · pre 127 meseci #5
^U jeee pa kakav si ti to haxor, ocigledno ne znas da napises program u jednoj liniji :D
Sviđa mi se1
Re: n++ i ++n razlika? 12.05.2016. u 14:23 · pre 127 meseci #6
Uzgred, zašto postoje post i preincrement operacije.
Razlog je vrlo jednostavan - prvi Unix, kao C programski jezik nastali su na PDP-11 računarima. Ta arhitektura je imala vrlo dobro urađen ortogonalan set instrukcija i među adresnim modovima postojali su postincrement i predecrement modovi,

Na primer, ako je arr neki niz, tada je bilo jednostavno da se iskompajlira:

x=arr[i++]

ili

x=arr[--j]

Zbog "simetrije" jezika dodati su i operatori preincrement i postdecrement.

Jednostavno, C je napravljen da zameni asembler, a pisci su želeli da generisanje mašinskog koda bude jednostavno.

Svi ostali jezici nastali kao derivati C, nasledili su i ove operatore, što iz nekakvog automatizma, što iz želje da programerima olakša tranziciju sa jednog na drugi jezik.
Sviđa mi se2
Re: n++ i ++n razlika? 12.05.2016. u 19:23 · pre 127 meseci #7
x = 1;
y = 2;

z = x + y++; // u ovom slucaju z ce biti 3 i y 3
z = x + ++y // u ovom slucaju z ce biti 4 i y 3

Da li ima smisla? Ima.
Da li moze bez ovoga? Moze kao i sto moze bez 90% naredbi.
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme