Inkrement und Dekrement
Bei der schrittweisen Erhöhung oder Verminderung einer Größe oder Variablen ist das Inkrement (von lateinisch incrementare ‚vergrößern‘) bzw. Dekrement (von lat. decrementare ‚vermindern‘) der festgelegte Betrag der Änderung. Ein Beispiel ist ein Drehkreuz im Schwimmbad, bei dem der Zähler für jeden Besucher um Eins erhöht wird. Die Verben inkrementieren und dekrementieren finden jedoch vor allem in der Informatik Anwendung und bezeichnen das Erhöhen, bzw. Verringern einer Integer-Variable um Eins.
Informatik
Inkrement und Dekrement sind elementare Operationen, die auf Maschinenebene meist durch einen einzelnen Befehl ausgeführt werden. Die Konstruktion von Schleifen basiert oft auf dem Inkrementieren oder Dekrementieren einer Variablen. Im häufigsten Fall ist der Betrag des Inkrements und des Dekrements 1.
Umsetzung in verschiedenen Programmiersprachen
Oft ist die Inkrement beziehungsweise Dekrement-Operation nur für Ganzzahlvariablen definiert, manchmal auch für Aufzählungstypen (Beispiel: Wochentage). In der Programmiersprache Perl kann man die Operation auch auf Zeichenketten anwenden.
Auch wenn in vielen Programmiersprachen eine Inkrementoperation mit einem Maschinenbefehl umgesetzt wird, ist das nicht überall der Fall. In Java beispielsweise ist ein Inkrement oder Dekrement einer Variablen eines primitiven Datentyps nicht atomar;[1] das bedeutet, dass bereits auf der Java Bytecodeebene diese Operation in mehrere (Maschinen-)Befehle unterteilt wird.
Codebeispiele
i und j bezeichnen hier Variablen.
Programmiersprachen | Code | Wirkung |
---|---|---|
Brainfuck | + | Inkrementierung der aktuellen Zelle um 1 |
- | Dekrementierung der aktuellen Zelle um 1 | |
C, C++, C#, Perl, PHP, Java und JavaScript | i++; | Postinkrement |
++i; | Präinkrement | |
i += j; | i wird um j erhöht | |
i--; | Postdekrement | |
--i; | Prädekrement | |
i -= j; | i wird um j verringert | |
COBOL | ADD j TO i | i wird um j erhöht |
ADD -j TO i | i wird um j verringert | |
Pascal | Inc(i); | i wird um 1 erhöht |
Inc(i,j); | i wird um j erhöht | |
Dec(i); | i wird um 1 verringert | |
Dec(i,j); | i wird um j verringert | |
PowerBASIC | Incr i | i wird um 1 erhöht |
Decr i | i wird um 1 verringert | |
Python, Ruby, Swift und Visual Basic | i += 1 | i wird um 1 erhöht |
i += j | i wird um j erhöht | |
i -= 1 | i wird um 1 verringert | |
i -= j | i wird um j verringert |
In Perl, PHP und der Mehrheit anderer höherer Programmiersprachen wird auf die gleiche Weise wie in C in- und dekrementiert, mit dem Unterschied, dass skalare Variablen durch das Präfix $
gekennzeichnet werden.
Wertzuweisungszeitpunkt in übergeordneten Ausdrücken
Wird eine Inkrement- oder Dekrement-Operation in einer Anweisung innerhalb eines anderen Ausdruckes verwendet, muss unterschieden werden, ob die Werterhöhung oder -verminderung vor oder nach der Auswertung des übergeordneten Ausdrucks stattfindet. Beim Prädekrement wird dem übergeordneten Ausdruck der bereits verringerte, beim Postdekrement hingegen der ursprüngliche Wert übergeben.
Erklärung | Beispiel in Java-Code | ||
---|---|---|---|
Inkrement | Postinkrement | Nachherige Werterhöhung. | int i = 5;
int c = i++; // c = 5
|
Präinkrement | Vorherige Werterhöhung | int i = 5;
int d = ++i; // d = 6
| |
Dekrement | Postdekrement | Nachherige Wertverkleinerung. | int i = 5;
int e = i--; // e = 5
|
Prädekrement | Vorherige Wertverkleinerung | int i = 5;
int f = --i; // f = 4
|
Ökonomie
In der Ökonomie ist das Inkrement die festgelegte minimale Erhöhung des Gebots bei Auktionen.
Digitale Messtechnik
In der digitalen Messtechnik, wo die zu messende Größe in diskrete Werte unterteilt wird, entspricht dem Inkrement die Auflösung.
Reflexologie
In die Reflexologie hat Charles Scott Sherrington (1857–1952) die Regelungstheorie einbezogen.[2] Sie erfordern ähnliche Steuerungsprinzipien wie in der Digitalen Messtechnik. Diese Erkenntnisse wurden auch von der Neuronentheorie übernommen.[3]
Plotter
Bei Plottern und anderen Zeichenmaschinen ist das Inkrement die feste kleinstmögliche Schrittweite des Zeichenkopfes. Eine Linie oder Kurve wird in gleich große Inkremente aufgeteilt.
Bedenkzeit
Bei Spielen mit festgelegter Bedenkzeit (z. B. Schach) wird die Zeitgutschrift, die ein Spieler pro Spielzug erhält, Inkrement genannt.
Siehe auch
- Kritischer Abschnitt
- Signature
Einzelnachweise
- ↑ Regeln für die Verwendung von volatile. Angelika Langer, abgerufen am 3. Januar 2010
- ↑ Reflexologie. In: Norbert Boss (Hrsg.): Roche Lexikon Medizin. 2. Auflage. Hoffmann-La Roche AG und Urban & Schwarzenberg, München 1987, ISBN 3-541-13191-8, S. 1457; 5. Auflage, 2003: gesundheit.de/roche
- ↑ Thure von Uexküll: Grundfragen der psychosomatischen Medizin. Rowohlt Taschenbuch, Reinbek bei Hamburg 1963; S. 243 ff., 257 ff. zu Stw. „Nachrichtentechnik, Modellvorstellungen“.