Anweisungen in Java (Anweisungen in Java), Lektion, Seite 724185
https://www.purl.org/stefan_ram/pub/anweisungen_java (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Java-Kurs

Anweisungen in Java 

Wir haben jetzt Aufrufanweisungen  kennengelernt und hatten davor auch schon Ausgabeanweisungen  kennengelernt.

Beides sind Spezialfälle einer allgemeinen syntaktischen Kategorie, der Anweisung.

Syntax von Anweisungen

Wir kennen zum jetzigen Zeitpunkt zwei Arten von Anweisungen:

Ausgabeanweisungen und Aufrufanweisungen sind Anweisungen.

Anweisungen
                  Anweisung
|
.-----------'-----------.
| |
Ausgabeanweisung Aufrufanweisung

Leeraum in und um Anweisungen

Anweisungen bestehen, wie Ausdrücke, aus lexikalischen Einheiten. Zwischen diese lexikalischen Einheiten kann oder muß Leerraum nach denselben Regeln wie schon bei Ausdrücken behandelt, eingefügt werden. Daher kann in der Regel vor oder hinter einer Anweisung Leerraum eingefügt oder gelöscht werden, ohne daß dies die Bedeutung eines Programmes verändert.

Semantik von Anweisungen

Wir erinnern zunächst an die Situation bei Ausdrücken: Die Semantik einer Ausdrucks  ist durch seinen Typ und das Verhalten  einer Auswertung  des Ausdrucks definiert. Für jede Art von Ausdruck  ist festgelegt, was es bedeutet, ihn auszuwerten.

Die Semantik einer Anweisung  ist durch die Wirkung  einer Ausführung  der Anweisung definiert.

Im Gegensatz zu einem Ausdruck hat eine Anweisung also keinen Wert.

Für jede Art von Anweisung  ist festgelegt, was es bedeutet, sie auszuführen.

Anweisungen und Ausdrücke sind Programme (im weiteren Sinne des Wortes). Der Computer kann sie ausführen. Die Ausführung eines Ausdrucks  nennt man allerdings Auswertung des Ausdrucks.

Die Ausführung eines Ausdrucks  nennt man Auswertung des Ausdrucks  (von „Ermittlung des Wertes des Ausdruck“).

Die Ausführung einer Anweisung  nennt man auch so: Ausführung der Anweisung.

Aufrufanweisungen

Wir können die Aufrufanweisung nun etwas allgemeiner einordnen:

Das Semikolon  erlaubt es, einen Aufruf  als Anweisung  zu schreiben.

Da eine Anweisung aber – im Gegensatz zu einem Ausdruck – keinen Wert haben kann, ist es ganz natürlich, daß der Wert des Ausdrucks dabei verloren geht.

Anweisungsfolgen

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

Regel Vor  oder hinter  eine Anweisung darf in unserem Programm eine andere Anweisung eingefügt  werden, und es entsteht so wieder ein korrektes Programm.

Regel Eine Anweisung darf in unserem Programm gelöscht  werden, und es entsteht so wieder ein korrektes Programm.

Bei einer Folge von Anweisungen werden die Anweisungen in der gegebenen Reihenfolge hintereinander ausgeführt und ihre etwaigen Wirkungen treten in derselben Reihenfolge ein.

Übertragung von Informationen ⃗

Übertragung von Informationen durch Werte 

Von einer Operation können durch einen Wert  Informationen zu einer Methode oder einem Operator übertragen werden.

Im folgenden Programm wird eine Information von der Methode »java.lang.Math.random()« an die Methode »java.lang.Math.rint(double)« übertragen, indem der von der Methode »java.lang.Math.random()« zurückgegebene Wert als Argumentwert  für den Aufruf der Methode »java.lang.Math.rint« verwendet wird.

Main.java
public final class Main
{ public static void main( final java.lang.String[] args )
{ java.lang.System.out.println( java.lang.Math.rint( java.lang.Math.random() )); }}
Protokoll
1.0

Übertragung von Informationen durch Wirkungen 

Bei der Übertragung einer Information durch eine Wirkung, hinterläßt eine Operation die Welt in einem Zustand, der jene Information enthält. Die nächste Operation kann dann durch den Zustand der Welt beeinflußt werden und so jene Information verwenden.

Im folgenden Programm schreibt die Operation »java.lang.System.setProperty( "user.country", "US" )« beispielsweise den Wert »"US"« unter dem Namen »"user.country"« in die Umgebung.

Dieser Information wird dann von der Operator »java.lang.System.getProperty( "user.country" )« wieder ausgelesen und schließlich von der Ausgabeanweisung ausgegeben. So entsteht die Ausgabe »US« des Programmes.

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

Übungsfragen

?   Texte klassifizieren

(Man beachte die untenstehende Gedächtnisstütze zu dieser Übungsfrage!)

Geben Sie zu den folgenden Texten jeweils an, ob sie eine Anweisung, ein Ausdruck  oder keines von beidem  sind.

Gedächtnisstützen für diese Übungsfrage:

1. Zu Anweisungen:

Wir kennen zum jetzigen Zeitpunkt zwei Arten von Anweisungen:

2. Zu Ausdrücken:

Wir kennen zum jetzigen Zeitpunkt folgende Arten von Ausdrücken  und ihren Bestandteilen:

Syntax von Ausdrücken und ihrer Bestandteile

Name

.-----------------------.
| .------. .-. v .------------.
---'--->| Name |-->( . )---'--->| Bezeichner |--->
'------' '-' '------------'

Ausdruckliste

.---------------------------.
| .----------. v
---'---.--->| Ausdruck |---.---'--->
^ '----------' |
| .-. |
'-------( , )<------'
'-'

Aufruf

.-------. .-. .---------------. .-.
--->| Name |--->( ( )--->| Ausdruckliste |--->( ) )--->
'-------' '-' '---------------' '-'

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

Postfixausdruck

.-----------------.
--->.--->| Primaerausdruck |---.--->
| '-----------------' ^
| .-----------------. |
'--->| Name |---'
'-----------------'

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

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

Additivausdruck
.-----------------------.
---.--->| Multiplikativausdruck |-----------------------------------------.--->
| '-----------------------' ^
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( + )--->| Multiplikativausdruck |---'
| '-----------------------' '-' '-----------------------' |
| .-----------------------. .-. .-----------------------. |
'--->| Additivausdruck |--->( - )--->| Multiplikativausdruck |---'
'-----------------------' '-' '-----------------------'

Ausdruck
.-----------------.
--->| Additivausdruck |--->
'-----------------'

Zusätzliche Anforderungen an Namen in Ausdrücken (läßt sich nicht den Syntaxdiagrammen entnehmen)
Wenn ein Name als Ausdruck  verwendet werden soll, so muß dies ein Name einer Variablen  sein. Der Name einer Methode, einer Klasse, eines Paketes oder eines Moduls ist kein  Ausdruck.
Wenn ein Name am Anfang eines Aufrufs  verwendet werden soll, so muß dies der Name einer Methode  sein.

?   Anweisungen

Geben Sie zu den folgenden Texten jeweils an, ob sie eine Anweisung  sind.

Dokumentation von »java.lang.Math.random()« (gekürzt und übersetzt)
java.lang
Klasse Math
static double random()
Ergibt einen double-Wert groesser oder gleich 0.0 und kleiner als 1.0.
Die Dokumentation von »java.lang.Math.cos« (vereinfacht)
java.lang
Class Math
static double cos( double x )
Ergibt den Kosinus von x.

Gedächtnisstütze für diese Übungsfrage:

Wir kennen zum jetzigen Zeitpunkt zwei Arten von Anweisungen:

Übungsaufgaben

/   Übungsaufgabe

Schreiben Sie ein Programm mit einer Ausgabeanweisung, das eine Zufallszahl ausgibt.

Das Programm soll nichts Überflüssiges enthalten.

/   Übungsaufgabe

Schreiben Sie ein Programm mit einer Aufrufanweisung, das die Methode »java.lang.Math.random()« aufruft.

Das Programm soll nichts Überflüssiges enthalten.

/   Übungsaufgabe ⃗

Schreiben Sie ein Programm, das gar keine  Anweisung mehr enthält, aber trotzdem fehlerfrei übersetzt werden kann.

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 stefanram724185 stefan_ram:724185 Anweisungen in Java Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724185, slrprddef724185, 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/anweisungen_java