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.