Najpoznatija greška koja nije greška

12.10.2025.

Na prvi pogled, izraz x = x + 1 deluje potpuno nelogično. Ako smo matematičari, odmah ćemo reći da je ovo besmislica — nijedan broj nije jednak svom većem broju. Ali ako razmišljamo kao programeri, sve dobija smisao.

Matematičko gledanje

U matematici, znak = označava jednakost. Kada napišemo x = x + 1, to bi značilo da je neki broj jednak svom nasledniku, što nije tačno. Ova jednakost nema rešenje i zato je matematički neispravna.

Programersko gledanje

U programiranju, znak = ne znači „jednako“, već „dodeli vrednost“. Kada napišemo x = x + 1, mi zapravo računamo novu vrednost tako što uzimamo trenutnu vrednost promenljive x, dodajemo joj 1, i rezultat dodeljujemo nazad u x.

Na primer, ako je x bilo 5, nakon izvršavanja x = x + 1, x će postati 6.

Šta je sa x += 1 i x++?

Oba zapisa, x += 1 i x++, imaju isti efekat — povećavaju vrednost promenljive x za 1. Razlika je samo u načinu pisanja i, u nekim slučajevima, redosledu izvršavanja kada se koriste u složenijim izrazima.

Ali sve tri varijante — x = x + 1, x += 1 i x++ — imaju potpuno smisla u kontekstu programiranja. One izražavaju promenu stanja, tj. da neka vrednost u memoriji sada treba da bude ažurirana.

Zaključak

Kada gledamo izraz x = x + 1 iz matematičke perspektive, on ne stoji. Ali iz programerske perspektive, on je sasvim prirodan i koristan. Razlika je u značenju simbola — u matematici = označava jednakost, dok u programiranju označava dodelu vrednosti.

Zato sledeći put kada vidimo x = x + 1, setimo se: ne menjamo matematiku — samo pričamo jezikom računara. Nelogično? Možda. Neophodno? Apsolutno.