Lecture overview -- Keyboard shortcut: 'u'  Previous page: Operator prioriteter -- Keyboard shortcut: 'p'  Next page: Den betingede operator i Java -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Play sound for this page -- Keyboard shortcut: 'y'  Page 31 : 39
Forelæsningsnoter i Objekt-orienteret Programmering
De ikke objekt-orienterede dele af Java
Increment, decrement og assignment operatorer i Java

Java indeholder en række operatorer, samt en række afarter af assignments, som tilhører en af C-kulturens mørke sider. Årsagen er, at begreberne udtryk og kommandoer sammenblandes på en meget uheldig måde. Vi nævner her kort de forskellige muligheder i Java, men vi vil klart anbefale at man ikke gør brug af dem!

En postfix operator såsom v++ tæller en variabel op efter værdien returneres

En prefix operator såsom ++v tæller en variabel op før værdien returneres

Pre- og postfix operatorer er både udtryk og kommandoer. Dvs. at en sådan konstruktion kan forekomme både de steder vi forventer en kommando, og de steder, hvor kun udtryk giver mening. Forvirringen opstår primært når vi anvender pre- og postfix operatorer som udtryk. Her er det nemlig væsentligt, om optællingen sker før eller efter vi returnerer (og anvender) værdien. Når disse konstruktioner anvendes som rene kommandoer, er det ligegyldigt, om vi benytter prefix eller postfix formen. Vær dog så venlig at skrive 'v = v+1' eller 'v = v-1' i stedet for!

Lad op være en binær operator.

En assignment operator udtrykker assignmentet

     x = x op y

som

     x op= y

En assignment operator erstatter et almindeligt 'akkumulerende' assignment (et assignment, hvor samme variable forekommer på begge sider af assignment symbolet) med en alternativ og kortere udtryksform. I nogle implementationer kan den alternative udtryksform også være mere effektiv.

Overdreven anvendelse af pre- og postfix operatorer samt assignments i udtryk giver ofte uigennemskuelige programmer