Die Ausdruckanweisung in Java (Die Ausdruckanweisung in Java), Lektion, Seite 722486
https://www.purl.org/stefan_ram/pub/aufrufanweisung_java_de (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Aufrufanweisungen in Java 

Zuvor wurde schon ein Programm mit Ausdrücken  behandelt, deren Auswertung eine Wirkung hat. Der Wert  dieser Ausdrücke wurde dabei jeweils ausgegeben.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( java.lang.System.setProperty( "user.country", "US" ));
java.lang.System.out.println( java.lang.System.getProperty( "user.country" )); }}
Protokoll
DE
US
Aussprachehinweis
property ˈprɑp ɚ ti

Die Wirkung  der Auswertung von »java.lang.System.setProperty( "user.country", "US" )« war die Veränderung  eines Wertes zu »US« und der sich ergebende Wert  war der vorige Wert »DE«,.

Manchmal fragt man sich, ob man »println« irgendwie „weglassen“ kann, wenn man »x« auf »4« setzen will, aber den Wert »DE« nicht ausgeben (sondern „verstecken“) will. Was ist also, wenn wir nur die Wirkung  haben wollen, aber den Wert  nicht  verwenden wollen?

Wir haben einen Ausdruck bisher immer in die abstrakte Ausgabeanweisung eingesetzt, wenn wir ihn auswerten lassen wollten. Nun werden wir lernen, wie wir Ausdrücke auch auf andere Weise auswerten lassen können.

Aufrufanweisungen

Um die Wirkung einer Auswertung zu erhalten, ohne den Wert dabei gleichzeitig auszugeben kann man den Ausdruck mit einem Semikolon zu einer Aufrufanweisung  verbinden.

Solch eine Aufrufanweisung verlangt, daß der Ausdruck ausgewertet wird, aber nicht, daß der erhaltene Wert dann auch ausgegeben wird.

In dem folgenden Beispielprogramm wird beispielsweise der Ausdruck »java.lang.System.setProperty( "user.country", "US" )« ausgewertet. Der Wert dieses Ausdrucks (»DE«) wird nicht  ausgegeben, aber man kann an der Ausgabe der folgenden Ausgabeanweisung erkennen, daß die Wirkung der Auswertung des Ausdrucks »java.lang.System.setProperty( "user.country", "US" )« eingetreten ist.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.setProperty( "user.country", "US" );
java.lang.System.out.println( java.lang.System.getProperty( "user.country" )); }}
transcript
US

Syntax

Syntax Eine Aufrufanweisung  besteht aus einem Aufruf und einem diesem folgenden Semikolon.

Aufrufanweisung (Syntaxdiagramm)
Anweisung
.--------. .-.
---->| Aufruf |---->( ; )---->
'--------' '-'

Das Semikolon der Aufrufanweisung ist eine lexikalische Einheit.

Ein Aufrufanweisung kann vor, hinter oder an Stelle einer Ausgabeanweisung in die bisher vorgestellten Programme eingesetzt werden.

Beispiel »java.lang.System.setProperty( "user.country", "US" );« ist eine Aufrufanweisung.

Zerlegung einer Aufrufanweisung

java.lang.System.setProperty( "user.country", "US" ) ;


'------------------------------------------------------------' '-----------'
Aufruf Semikolon

| |
'----------------------------------------------------------------------------------'
Aufrufanweisung

Typregeln

An den Datentyp  des Aufrufs werden keine Anforderungen gestellt – jeder Typ ist erlaubt.

Ausführung

Bei der Ausführung einer Aufrufanweisung wird ihr Aufrufausdruck ausgewertet.

Bei der Auswertung des Aufrufs einer Aufrufanweisung treten dann die Wirkungen  dieser Auswertung ein. Ein sich dabei eventuell ergebender Wert  wird allerdings nicht weiter verwendet (er geht verloren). Beispielsweise ergibt die Auswertung des Aufrufs »java.lang.System.setProperty( "user.country", "US" )« in der Aufrufanweisung »java.lang.System.setProperty( "user.country", "US" );« zwar den Wert »DE«, aber dieser Wert wird nun nicht mehr ausgegeben (wie in dem ersten Programm dieser Lektion), sondern er geht verloren.

Der Aufruf von Methoden, die einen Wert liefern, aber keine Wirkung haben, ist in einer Aufrufanweisung wirkungslos.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.Math.random();
java.lang.Math.cos( 0 ); }}
java.lang.System.out
(keine Ausgabe)

In dem obigen Programm wird ein Wert von der Methode »java.lang.Math.random()« zurückgegeben, aber dieser wird nicht ausgegeben.

Wir sagen daher auch, daß wir den Wert eines Ausdrucks verwerfen  (also ihn nicht verwenden), wenn wir ihn als Aufruf in einer Aufrufanweisung verwenden.

Die Aufrufanweisung verwendet den Wert nicht. Man verwendet sie also, wenn man einen Ausdruck nur wegen der Wirkung  der Auswertung auswerten will.

Die Aufrufanweisung  wird verwendet, wenn die Wirkung  eines Aufrufs eintreten und der Wert ignoriert werden soll.

Übungsfragen ⃗

?   Erkennen von Anweisungsarten ⃗

Sagen Sie zu jeder der folgenden Anweisungen, ob es sich um eine Ausgabeanweisung  oder um eine Aufrufanweisung  handelt!

Faustregel Eine Ausgabeanweisung erkennt man am »print« oder »println« vor der ersten Klammer.

?   Lexikalische Einheiten zählen ⃗

Wie viele lexikalische Einheiten enthält die Aufrufanweisung »java.lang.Math.random();«?

Übungsaufgaben ⃗

/   Übungsaufgabe ⃗

Schreiben Sie eine Inkarnation der Kategorie »Aufrufanweisung« des folgenden Syntaxdiagramms mit dem Aufruf »java.lang.Thread.yield()«.

Aufrufanweisung (Syntaxdiagramm)
Aufrufanweisung
.--------. .-.
---->| Aufruf |---->( ; )---->
'--------' '-'

Die Lösung soll auf einer von Leerzeilen umgebenden Zeile für sich stehen.

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 stefanram722486 stefan_ram:722486 Die Ausdruckanweisung in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722486, slrprddef722486, 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/aufrufanweisung_java_de