Die Verwendung von Klammern zur Bildung von Primärausdrücken (Die Verwendung von Klammern zur Bildung von Primärausdrücken), Information, Seite 724190
https://www.purl.org/stefan_ram/pub/klammern_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Kombinationen von Operatoren in Java 

Verwendung von Vorzeichenausdrücken als Operanden

Syntax

Ein Operand eines Multiplikativausdrucks muß nicht unbedingt ein Literal sein. Auch ein echter Vorzeichenausdruck ist erlaubt.

Ein echter Vorzeichenausdruck als erster Operand eines Multiplikativausdrucks
-12 / 2

Im Ausdruck »-12 / 2« ist »-12« der erste Operand des Divisionsoperators »/«.

Eine Interpretation von »- 12/2«, derzufolge der Quotient ein Operand des Vorzeichens ist, kommt hingegen nicht  in Frage, da der Operand eines Vorzeichenausdrucks ein Vorzeichenausdruck sein muß und »12/2« kein  Vorzeichenausdruck ist.

Semantik

Bei der Auswertung eines Operatorausdrucks werden zunächst alle Operanden von links nach rechts ausgewertet. Dann wird die zum Operator gehörigen Operation mit den Operandenwerten verbunden  und die entstandene Inkarnation ausgeführt, wodurch sich der Wert des Operatorausdrucks ergibt.

In der folgenden Liste notieren wir Aktionen (Rechenschritte) durch die zugehörige Inkarnation. Die Auswertung von Literalen wird dabei zur Vereinfachung nicht dargestellt.

Eine Inkarnation  ist die Verbindung einer internen Operation mit Werten für alle ihre Operandenstellen. Eine interne Operation  ist ein internes Programm, das durch einen Operator und Operandentypen bestimmt ist. Beispielsweise
Rechenschritte bei der Auswertung von »-12 / 2«
[-int] «12»
«-12» [int/int] «2»

Bildung von Primärausdrücken mit Klammern

Die bisher vorgestellte Syntax erlaubt als Operand eines Multiplikationsoperators »*« nur einen Vorzeichenausdruck, aber keinen  weiteren Multiplikativausdruck. Um mehrere Multiplikationen  in einem Ausdruck ausführen zu können, kann jedoch mit Hilfe der Klammern »(« und »)« aus einem beliebigen Ausdruck (Multiplikativausdruck) wieder ein Primärausdruck (Vorzeichenausdruck) gemacht werden, der dann als Operand eines Multiplikationsoperators, wie »*« oder »/«, verwendet werden kann.

Zwei binäre Operatoren in einem Ausdruck

12 /( 12 / 2 )

Primaerausdruck (Wert 12 ) / Primaerausdruck (Wert 6)

Zwei binäre Operatoren in einem Ausdruck

( 12 / 12 )/ 2

Primaerausdruck (Wert 1) / Primaerausdruck (Wert 2)

Semantik

Bei der Auswertung eines Operatorausdrucks werden zunächst alle Operanden von links nach rechts ausgewertet. Dann wird die zum Operator gehörigen Operation mit den Operandenwerten verbunden  und die entstandene Inkarnation ausgeführt, wodurch sich der Wert des Operatorausdrucks ergibt.

Zur Auswertung von »12/(12/2)« werden zunächst die beiden Operanden »12« und »(12/2)« ausgewertet, wodurch sich die internen Werte «12» beziehungsweise «6» ergeben. Anschließend ergibt die Division jener beiden Werte das Endergebnis «2».

Aktionen (Rechenschritte)
«12» [int/int] «2»
«12» [int/int] «6»

Zur Auswertung von »(12/12)/2« werden zunächst die beiden Operanden »(12/12)« und »2« ausgewertet, wodurch sich die internen Werte «1» beziehungsweise «2» ergeben. Anschließend ergibt die Division jener beiden Werte das Endergebnis «0».

Aktionen (Rechenschritte)
«12» [int/int] «12»
«1» [int/int] «2»

Syntaxdiagramm

Hier wird zum Nachlesen noch einmal das Syntaxdiagramm aus der vorigen Lektion wiedergegeben.

Syntax (Syntaxdiagramm)

Primaerausdruck
.-. .----------. .-.
--->.--->( ( )--->| Ausdruck |--->( ) )--->.--->
| '-' '----------' '-' ^
| .----------. |
'------------>| Literal |-------------'
'----------'

Vorzeichenausdruck
.--------------------.
---.------------>| Primaerausdruck |----.---->
| '--------------------' ^
| .-. .--------------------. |
'--->( - )--->| Vorzeichenausdruck |----'
| '-' '--------------------' |
| .-. .--------------------. |
'--->( + )--->| Vorzeichenausdruck |----'
'-' '--------------------'

Multiplikativausdruck
.--------------------.
---.--->| Vorzeichenausdruck |--------------------------------------.--->
| '--------------------' ^
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( * )--->| Vorzeichenausdruck |---'
| '--------------------' '-' '--------------------' |
| .--------------------. .-. .--------------------. |
'--->| Vorzeichenausdruck |--->( / )--->| Vorzeichenausdruck |---'
'--------------------' '-' '--------------------'

Ausdruck
.------------------------.
--->| Multiplikativausdruck |--->
'------------------------'

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 stefanram724190 stefan_ram:724190 Die Verwendung von Klammern zur Bildung von Primärausdrücken Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724190, slrprddef724190, 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/klammern_java