Sobes.tech
Junior — Middle

Kuidas mõjutab modifikaatorite operaatorite kasutamise järjekord väljendite tulemust?

sobes.tech AI

Vastus AI-lt

Modifikatsioonide operaatorite (näiteks inkrement ++, dekrement --, unaarne miinus -, loogiline eitamine ! ja teised) kasutamise järjekord mõjutab avaldise tulemust, kuna on erinevus prefiks- ja postfixvormi vahel ning samuti operaatorite prioriteedi ja assotsiatiivsuse tõttu.

  • Prefiksoperaator (++i, --i) muudab esmalt muutuja väärtust ja seejärel tagastab uue väärtuse.
  • Postfiksoperaator (i++, i--) esmalt tagastab praeguse muutuja väärtuse ja seejärel muudab selle.

Näide:

int i = 5;
int a = ++i; // i muutub 6-ks, a = 6

int j = 5;
int b = j++; // b = 5, j muutub 6-ks

Samuti mõjutab operaatorite järjekord avaldiste arvutamist, näiteks:

int x = 3;
int y = 4;
int result = -x++ + ++y; 

Siin rakendatakse esmalt unaarset miinust x-le (aga x++ on postfix), seega esmalt tagastatakse x (3), siis x suureneb 4-ks, seejärel ++y suurendab y-d 5-ks ning tulemus arvutatakse kui -3 + 5 = 2.

Oluline on mõista operaatorite prioriteeti ja hindamise järjekorda:

  • Unaarsetel operaatoritel on kõrge prioriteet.
  • Postfiksoperaatoritel on kõrgem prioriteet kui prefiksoperaatoritel.

Vead modifikatsioonite operatsioonide kasutamise järjekorras võivad viia ootamatute tulemusteni, seetõttu on soovitatav kirjutada kood nii, et hindamise järjekord oleks selge.