Einführung in die Operatoren zum Inkrementieren und zum Dekrementieren im Rahmen der Lehre des Programmierens mit der Programmiersprache Java. [] (Inkrementieren, Dekrementieren, Inkrementierung, Dekrementierung, Java), Lektion, Seite 721536
https://www.purl.org/stefan_ram/pub/java_inkrementieren_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Inkrementierung

Das Erhöhen einer Variablen um 1 wird auch Inkrementieren  genannt.

Erste Beispiele

Das folgende Programm setzt eine Variable i  auf den Wert 2, inkrementiert diese dreimal, und gibt dann den Wert dieser Variablen aus.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ int i = 2;
++i;
++i;
++i;
java.lang.System.out.println( i ); }}
java.lang.System.out
5

Syntax (vereinfacht)

Anweisungsausdruck

     .--.     .----------.
--->( ++ )--->| Variable |--->
'--' '----------'

Es handelt sich bei diesem Ausdruck um eine Anweisungsausdruck, er darf also auch vor dem Semikolon in einer Ausdruckanweisung verwendet werden.

Typanforderungen (vereinfacht)

Die Variable muß numerisch sein.

Semantik

»( ++v )« ist eine Abkürzung für »( v += 1 )«.

Genauer: für eine Variable »v« bedeutet »( ++v )« dasselbe wie »( v += 1 )«.

Es wird also der Wert um 1 erhöht, und der Wert des gesamten Ausdrucks ist der erhöhte Wert .

Beispiele

Main.java
public class Main
{ public static void main( String[] args )
{ int i = 0;
java.lang.System.out.println( i );
java.lang.System.out.println( ++i );
java.lang.System.out.println( i ); }}
transcript
0
1
1
Auswertung von ++i in obigem Programm
— i hat den Wert 0
++i → 
i += 1 →
i = i + 1 →
i = 0 + 1 →
i = 1 →
1
— i hat den Wert 1
Inkrementierung
   Wertspeicher i
enthaelt Wert W
|
V Vorzustand
.--------------.
| ++i |
| |-------> W + 1
| | Wert
'--------------'
| Nachzustand
V
Wertspeicher i
enthaelt Wert W + 1
Main.java
public class Main
{ public static void main( String[] args )
{ int a;
int b;
a = 3;
b = ++a * 2;
java.lang.System.out.println( a );
java.lang.System.out.println( b ); }}
transcript
4
8

Nachinkrementierung

Es kann sein, daß durch einen Inkrementierungsausdruck der Wert einer Variablen vor  der Inkrementierung notiert werden soll. In diesem Fall wird der Operator der Variablen nachgestellt.

Syntax (vereinfacht)

Anweisungsausdruck

    .----------.     .--.
--->| Variable |--->( ++ )--->
'----------' '--'

Es handelt sich bei diesem Ausdruck um eine Anweisungsausdruck, er darf also auch vor dem Semikolon in einer Ausdruckanweisung verwendet werden.

Typanforderungen (vereinfacht)

Die Typanforderungen beim nachgestellten »++« sind wie beim vorangestellten.

Semantik

Wirkung

Die Wirkung beim nachgestellten »++« ist wie beim vorangestellten.

Wert

Der Wert beim nachgestellten »++« ist anders als beim vorangestellten der Wert noch der alte Wert der Variablen (der Wert vor der Erhöhung). Die Bezeichnungen „Nachinkrementierung“ ergibt sich daraus, daß die Inkrementierung in diesem Fall sozusagen „nach“ der Bewertung des Ausdrucks erfolgt.

Beispiele

Main.java
public class Main
{ public static void main( String[] args )
{ int i = 0;
java.lang.System.out.println( i );
java.lang.System.out.println( i++ );
java.lang.System.out.println( i ); }}
transcript
0
0
1
Auswertung von ++i in obigem Programm
— i hat den Wert 0
i++ → 
i →
0
— i hat den Wert 1
Inkrementierung
   Wertspeicher i
enthaelt Wert W
|
V Vorzustand
.--------------.
| i++ |
| |-------> W
| | Wert
'--------------'
| Nachzustand
V
Wertspeicher i
enthaelt Wert W + 1
Main.java
public class Main
{ public static void main( String[] args )
{ int a;
int b;
a = 3;
b = a++ * 2;
java.lang.System.out.println( a );
java.lang.System.out.println( b ); }}
transcript
4
6

Die Nachinkrementierung ist im allgemeinen aufwendiger als die Inkrementierung, weil der alte Wert vor der Inkrementierung erst noch zwischengespeichert oder durch Subtraktion wiederhergestellt werden muß. Aufgrund der vielfältigen Optimierungen moderner Java -Implementationen kann man heute aber nicht mehr davon ausgehen, daß ihre Verwendung ein Programm deswegen notwendigerweise verlangsamt. Die Vorinkrementierung »++i« ist aber auch begrifflich einfacher, da sie genau dem Inkrementierungsausdruck »i+=1« entspricht, sie kann daher als der Normalfall angesehen werden, der bevorzugt werden sollte, wenn es egal ist, ob »++i« oder »i++« geschrieben wird.

Folgendes Programm kann diesen Operator motivieren:

Main.java
public class Main
{ public static void main( String[] args )
{ int i = 0; while( i < 4 )
java.lang.System.out.println( i++ ); }}
transcript
0
1
2
3

Würde man statt dessen den Präfixoperator verwenden, so erhielte man ein anderes Ergebnis.

Main.java
public class Main
{ public static void main( String[] args )
{ int i = 0; while( i < 4 )
java.lang.System.out.println( ++i ); }}
transcript
1
2
3
4

Dekrementierung

Statt »++« kann auch »--« verwendet werden, wenn der Wert um 1 vermindert (dekrementiert) werden soll. Genauso wie bei »++« kann dieser Operator vor  (Dekrementierung) oder hinter  (Nachdekrementierung) eine Variable geschrieben werden.

Es handelt sich bei dem Operator »--« um eine einzige  lexikalische Einheit. Falls zwei Vorzeichen »-« hintereinander geschrieben werden sollen, so müssen diese irgendwie, beispielsweise durch Leerraum, getrennt werden, damit sie nicht als »--« interpretiert werden.

Dekrementierung
   Wertspeicher i
enthaelt Wert W
|
V Vorzustand
.--------------.
| --i |
| |-------> W - 1
| | Wert
'--------------'
| Nachzustand
V
Wertspeicher i
enthaelt Wert W - 1
Nachdekrementierung
   Wertspeicher i
enthaelt Wert W
|
V Vorzustand
.--------------.
| i-- |
| |-------> W
| | Wert
'--------------'
| Nachzustand
V
Wertspeicher i
enthaelt Wert W - 1

Wir bezeichnen hier Inkrementieren und Dekrementieren auch zusammenfassend als Krementieren, obwohl dieser Ausdruck nicht allgemein üblich ist.

Beispiele

Main.java
public class Main
{ public static void main( String[] args )
{ int a;
int b;
a = 3;
b = --a * 2;
java.lang.System.out.println( a );
java.lang.System.out.println( b ); }}
transcript
2
4
Main.java
public class Main
{ public static void main( String[] args )
{ int a;
int b;
a = 3;
b = a-- * 2;
java.lang.System.out.println( a );
java.lang.System.out.println( b ); }}
transcript
2
6

Anweisungsausdrücke

Wir kennen jetzt folgende Anweisungsausdrücke, welche als Ausdruck einer Ausdruckanweisung verwendet werden können.

Anweisungsausdrücke
Methodenaufruf
Zuweisung
Verbundzuweisung
Inkrementierung
Nachinkrementierung
Dekrementierung
Nachdekrementierung

Das folgende Programmbeispiel zeigt die Verwendung von Krementierungen als Anweisungsausdrücke.

Main.java
public class Main
{ public static void main( String[] args )
{ int i = 0;
i++;
++i;
i--;
--i;
java.lang.System.out.println( i ); }}
transcript
0

Da der Wert eines Anweisungsausdrucks keinen Einfluß auf das Verhalten eines Programms hat, ist es bei Verwendung einer Krementierung als Anweisungsausdruck egal, ob diese mit voran- oder mit nachgestelltem Operator geschrieben wird.

Prioritäten

Priorität und Assoziativität der bisher behandelten Operatoren
   ()                   Eingeklammerter Ausdruck
() ++ -- Aufrufoperator, unaere nachgestellte Operatoren
+ - ++ -- Unaere vorangestellte Operatoren
L * / Multiplikation, Division
L + - Addition, Subtraktion
L < > <= >= Vergleiche
L == != Gleichheitspruefungen
R = = += -= *= /= %= Zuweisung

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721536 stefan_ram:721536 Inkrementieren, Dekrementieren, Inkrementierung, Dekrementierung, Java source, source code,sourcecode, Programmier sprache java, Java Programm Java Programmiersprache Java Sprache Java Programmierung Programmieren in Java, Die Programmiersprache Java Javapgrammierung, Java-Programmierung, Java2, Java1.2, Java1.3, Java1.4, Java1.5, Java 2, Java 1.2, Java 1.3, Java 1.4, Java 1.5, Java 1.6, Java 1.7, Java 1.8, Java 8, Java 1.9, Java 9, Tiger, Dolphin, objektorientierte Programmierung, Java sun, , Softwareentwicklung, Software-Entwicklung, Software Entwicklung, Softwareprogrammierung, Software-Programmierung, Software Programmierung, Softwareherstellung, Software-Herstellung, Software Herstellung, Softwareerstellung, Software-Erstellung, Software Erstellung, Softwareengineering, Software-Engineering, Software Engineering, Softwareenginering, Software-Enginering, Software Enginering, Softwaremethodik, Software-Methodik, Software Methodik, Programmiermethodik, Programmier-Methodik, Programmier Methodik, Softwaredidaktik, Software-Didaktik, Software Didaktik, Methodik des Programmierens, Didaktik des Programmierens, Fachdidaktik des Programmierens, Fach-Didaktik des Programmierens, Programmieren, Programmierung, Computer Science, Informatik, Informatik, Informationspädagogik, Informationspaedagogik, Programmierer, programmieren, Quellcode, Quelltext, Quelle, Quellen, Informatiker, Fachinformatiker, Entwickler, mit Stil, mit Stiel, mit Still, , Einführung, Einfuehrung, Einführungen, Einfuehrungen, eLearning-Modul, e-Learning-Modul, eLearning-Module, e-Learning-Module, Kurs Berlin, Kurse Berlin, Kursus, Vortrag, Vorträge, Vortraege, Lehrgang, Lehrgänge, Lehrgaenge, kostenloses Lehrmaterial, kostenlose Lehrmaterialien, Vorlesung, Vorlesungen, Unterrichtseinheit, Unterrichtseinheiten, kostenloses Unterrichtsmaterial im Internet, kostenlose Unterrichtsmaterialien im Internet, Ausbildung, Ausbildungen, für die Ausbildung, Fortbildung, Fortbildungen, Weiterbildung, Weiterbildungen, Schulung Berlin, Schulungen Berlin, Internetschulung, Webschulung, Kursunterlage, Kursunterlagen, trainer Berlin, Didaktik, Informatikunterricht, Primer, Skript FH, Skripte FH, Skriptum FH, Skripts FH, Script FH, Scripte FH, Scriptum FH, Scripts FH, howto, how-to, how to, Lehrbuch, Buch, Bücher, Buecher, Bericht, Crash Kurs Berlin, Crash-Kurs Berlin, Crashkurs Berlin, Report, Sachtext, Sachtexte, Übung, Übungen, Uebung, Uebungen, course, PbclevtugFgrsnaEnz, lecture note, lecture notes, Tutorial, Tutor, Tutorium, Teacher, Lehrer Berlin, Trainer Berlin, Beratung Berlin, Anleitung zum, Anleitungen zum, Einführung, Einfuehrung, Einführungen, Einfuehrungen, Handbuch für, Handbücher, Handbuecher, Support, Diplomarbeit, Facharbeit, Hausarbeit, Hausarbeiten, Werk, Werke, Text, Übungsblatt, Uebungsblatt, Lösung, Loesung, Lösungen, Loesungen, Auflösung, Aufloesung, Auflösungen, Aufloesungen, Facharbeit, Facharbeiten, Forum, Training, manual, Folie, Folien, Lehrmittel, beratung, Definition von, Allgemeine Erklärung, Allgemeine Erklaerung, Allgemeine Erklärungen, Allgemeine Erklaerung, Allgemeine Erklaerungen, Einfache Erklärung einfach, Einfache Erklaerung einfach, Einfache Erklärungen, Einfache Erklaerung, Einfache Erklaerungen, zum Thema, FAQ, FAQs, Konzept, Lernkurs, Lern-Kurs, Lernkurse, Lern-Kurse, eine kurze Erklärung, Begriff, Begriffe, Erklärung zu Begriffen, begriffbestimmung, begriffbestimmung, Begriffsbestimmung, Begriffserklärung, Begriffserklaerung, Wort, Worterklärung, Worterklaerung, Definition, Beispiel, Beispiele, Bedeutung, Bedeutungen, was bedeutet, Begriffsdefinition, für Anfänger, fuer Anfaenger, für Einsteiger, für Beginner, zum selber Lernen, handout, hand out, web based training, WBT, Net Based Training, NBT, computer based training, CBT, virtual learning environment, virtual university, für die Schule, Seminar, Seminare, Vorgehensweise, Pädagogik, Paedagogik, Akademie, Onlineacademie, Onlineakademie, Wissen, Unterrichtsvorbereitung für das Fach, Unterricht, für Lehrer, für Lehrerinnen, Referat, Referate, Hausaufgabe, Hausaufgaben, Tip, Tipp. Tipps und Tricks, Tips und Tricks, Methode, Methoden, Methodik, Funktion, Funktionsweise, Aufbau, Prinzip, Grundlage, Grundlagen, Internetschulung, Unterlage, Unterlagen, Struktur, Frage, Fragen, Antwort, Antworten, Schulunterricht, zum erlernen, was ist das?, wie?, lerne, Onlineausbildung, Onlinelehrgang, Onlinekurs, Onlinebuch, Webbuch, Academy, Fachhochschule, FH, TFH, Hochschule, Universität, Universitaet, Uni, Schule, Berufsschule, Gymnasium, Erste Schritte mit, Dozent, Dozenten, Zusammenfassung, Übersicht, Term, Fachwort, Fachbegriff, Fachbegriffe, Grundbegriff, Grundbegriffe, Lektion, Lektionen, Bedienungsanleitung, Bedienungsanleitungen, Spezialist, Spezialisten, Coaching, Coach, Fachbuch, technologie, Unterschied zwischen, Unterschiede zwischen, lehren, unterrichten, für das Studium, für Studenten, für Studentinnen, für Studierende, für Schüler, für Schülerinnen, Wie kann ich, Wie kann man, Hilfe, selber, erstellen, Erstellung, Beginner, Online-Seminar, Online-Kurs, Online-Schulung, ich, gebrauchsanweisung, gebrauchsanleitung, Bedienungsanweisung, Einweisung, Kurzinfo, Internet-Kurs, Internet-Kurse, Online-Training, Intensiv, Intensivkurs, Vortragsreihe, Präsentation, Grundzüge, Mitschrift, Mitschriften, Verständnis, verstehen, anwenden, Hintergrundwissen, Hintergrund, Hintergründe, content, Funktionsprinzip, Schritt für Schritt; E-Learning; elearning; online learning; Fernlehre, Fernlehrgang, Fernlehrgänge, Referent, Referenten, Fernkurs, Fernkurse, Fernstudium, Fernschule, Fernuniversität, Fernlehrer, Denken, Qualifizierungsmaßnahme, Qualifizierung, Qualifizierungen, Volkshochschulkurs, Volkshochschulkurse, Internet-Learning-Plattform, Online-Learning-Plattform, E-Learning-Plattform, Internetlearning-Plattform, Onlinelearning-Plattform, Elearning-Plattform, jetzt, Kochbuch, einfach erklärt, Kenntnis, Kenntniss, Kenntnisse, deutsche Hilfe, lernen und verstehen; blended learning; courseware, Profi, Profis, professionell, professionelle, professionelles, profesionell, profesionelle, profesionelles, professionel, gekonnt, für Könner, Grundkurs, Leistungskurs, Aufbaukurs, Lehrtext, Lehrtexte, Fachtext, Fachtexte, Ausarbeitung, distance learning, Online Seminar, distance education, Online Tutorium, Online Tutorien, technology-based learning, Computer based learning, CBL, Internet Based learning, IBL, Web based learning, WBL, online-learning, OL, online-training, OT, CAI, Computer Assisted Instruction, CUU, Computerunterstützter Unterricht, Computer-unterstützter Unterricht, Know how, Grundkenntnis, Grundkenntnisse, Kompetenz, Schulungsunterlagen, Insiderwissen, Rat, Lehrerinnen und Lehrer, ABC, Überblick, Arbeitsblatt, Sekundarstufe, Oberstufe, Material, Materialien, Unterrichtsentwurf, Unterrichtsentwürfe, Lerntip, Lerntips, Lerntipp, Lerntipps, ebook, schnell lernen, Lerner, Lernender, Lernende Erwachsenenbildung, Frage und Antwort, Selbststudium, Selbstudium, Umschulung, , kostenlos, kostenlose, kostenloses, kosten los, kosten lose, kosten loses, gratis, free, frei, freie, freies, privat, private, privates, homepage, home-page, home page, website, web site, webpage, web-page, web page, webpages, web-pages, web pages, webseite, Web-Seite, Webseite, Webseiten, Web-Artikel, Web Artikel, online, on-line, on line, download downloaden, down load, or, deutsch, deutsche, deutsches, deutscher, Deutschland, deutschsprachig, deutschsprachige, deutschsprachiges, german, germany, and, uebersicht, Uerbersicht, uebersichten, Uebersichten, Übersicht, übersicht, Übersichten, übersichten, Uebersicht, uebersicht, Uebersichten, uebersichten, Info, Infos zu, Information über, ueber, Informationen über, Auskunft, Auskünfte, Auskuenfte, Dienst, PbclevtugFgrsnaEnz, Angebot, Angebote, Anbieter, server, für, fuer, in, an, keyword, keywords, key word, keywords, internet, internets, net, network, net work, networks, net works, web, www, world wide web, Theorie, Praxis, Anwendung, DV, IT, glossar, fachwörterbuch it-glossar, computer lexikon, Computerlexikon, Computer-Lexikon, Lexikon, computer lexicon, Computerlexicon, Computer-Lexicon, Lexicon, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 was ist ein, was ist das, was sind, definiere, definition, define, Inhalt, html, xhtml, free im netz, PDF Text, digital, digitale, binär, binäre, elektronisch, elektronische, fachbegriff, fachbegriffe, konzept, Begriff, allgemein, allgemeine, allgemeines, Technik, Datentechnik, Digitaltechnik, Binätechnik, online lesen; , Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd721536, slrprddef721536, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/java_inkrementieren_de