Vorlesung "Einführung Wissenschaftliches Rechnen"

Werbung
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung
”Einführung Wissenschaftliches Rechnen”-BZQ I
René Lamour
Wintersemester 2009/2010
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
My first JAVA code
public class <name> {
public static void main(String[] args){
<programmtext>
}
}
Die “normalen” Klammern sind { und }.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen,
die in { . . . } eingeschlossen werden.
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen,
die in { . . . } eingeschlossen werden. Die Anweisungen
werden nacheinander ausgeführt.
{
Anweisung 1;
Anweisung 2;
..
.
Anweisung n;
}
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
Ein Block wirkt nach außen wie eine Anweisung
(Achtung: ohne ;).
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
Ein Block wirkt nach außen wie eine Anweisung.
Blöcke können geschachtelt werden.
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
Ein Block wirkt nach außen wie eine Anweisung.
Blöcke können geschachtelt werden.
In einem Block definierte Objekte sind nur in diesem Block
bekannt!
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung hat die Struktur
if (boolescher Ausdruck)
Anweisung 1
else
Anweisung 2
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
if (boolescher Ausdruck)
Anweisung 1
else
Anweisung 2
Die Abarbeitung wird durch den booleschen Ausdruck
gesteuert.
Ist der booleschen Ausdruck = true wird
Anweisung 1 ausgeführt, sonst
Anweisung 2.
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die Abarbeitung wird durch den booleschen Ausdruck
gesteuert.
Ist der booleschen Ausdruck = true wird
Anweisung 1 ausgeführt, sonst
Anweisung 2.
Beispiel: if (student > 0)
System.out.println(”\u00dcbung findet statt!”);
else
System.out.println(”Keine \u00dcbung!”);
| {z }
Ü
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
if (boolescher Ausdruck)
Anweisung 1
else
Anweisung 2
Merke: Der else-Zweig kann fehlen!
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die for- oder Zählschleife hat die Struktur
for(Initializierungsanw.; boolescher Ausdruck; Inkrementanw.)
Anweisung(sblock)
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
for(Initializierungsanw.; boolescher Ausdruck; Inkrementanw.)
Anweisung(sblock)
Die Abarbeitung ist:
1. Ausführen der Initializierungsanweisung
2. if ( boolescher Ausdruck )
Ausführen der Anweisung,
der Inkrementanweisung,
weiter bei 3.
else
for-Schleife wird beendet.
3. weiter bei 2.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Blöcke und Kontrollstrukturen
I
Ein Block enthält eine Folge von Anweisungen
I
Die if-else-Anweisung
I
Die for- oder Zählschleife
Die Abarbeitung ist:
1. Ausführen der Initializierungsanweisung
2. if ( boolescher Ausdruck )
Ausführen der Anweisung,
der Inkrementanweisung,
weiter bei 3.
else
for-Schleife wird beendet.
3. weiter bei 2.
Beispiel: int j=0;
for( int i=1; i < 11; i=i+1) j=j+i;
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Sehr viele nützliche Programme liegen schon vor und wir
wollen sie benutzen. Dazu gibt es Bibliotheken.
BZQ-I-Homepage → Bibliotheken für Java → JAVA 5 →
links oben java.lang → links unten Math
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Alles in java.lang kann direkt benutzt werden. Nur wie?
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Alles in java.lang kann direkt benutzt werden. Nur wie?
Die ausgewählte Klasse heisst Math und wir wollen eine
statische Methode (Unterprogramm) benutzen.
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Die ausgewählte Klasse heisst Math und wir wollen eine
statische Methode (Unterprogramm) benutzen.
→ Methode sqrt im Method Summary ansehen.
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
An der ersten Spalte erkennt man, dass alle diese Methoden
static sind. (Was das genau ist, folgt später.)
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
An der ersten Spalte erkennt man, dass alle diese Methoden
static sind. (Was das genau ist, folgt später.)
√
Funktionalität von sqrt - square root oder
.
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Funktionalität von sqrt - square root oder
√
.
Die erste Spalte gibt auch den Rückgabetyp an - double
Hinter dem Namen steht in Klammern die Parameterliste double a
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Funktionalität von sqrt - square root oder
√
.
Die erste Spalte gibt auch den Rückgabetyp an - double
Hinter dem Namen steht in Klammern die Parameterliste double a
Die statische Methode methode mit dem Rückgabetyp typ in
der Klasse klasse wird unter Berücksichtigung ihrer
Parameterliste folgendermaßen aufgerufen:
typ erg=klasse.methode(<Var. entsp. der Parameterliste>);
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Die statische Methode methode mit dem Rückgabetyp typ in
der Klasse klasse wird unter Berücksichtigung ihrer
Parameterliste folgendermaßen aufgerufen:
typ erg=klasse.methode(<Var. entsp. der Parameterliste>);
Beispiel: double rad=2.0;
double wurzel=Math.sqrt(rad);
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Analog sind auch Konstanten einer Klasse (→ Field
Summary) zu benutzen:
Beispiel: double pi=Math.PI;
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Die Potenzfunktion - x i
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Die Potenzfunktion - x i
Für i = 2 schreiben wir x ∗ x, sonst nutzen wir
Sfun.pow(double x, int i) =
ˆ xi
aus der Biliothek (package) HUMath.Numerik.
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
Die Potenzfunktion - x i
Für i = 2 schreiben wir x ∗ x, sonst nutzen wir
Sfun.pow(double x, int i) =
ˆ xi
aus der Biliothek (package) HUMath.Numerik.
Die Java.lang-Methode
Math.pow(double x, double y) =
ˆ x y = e y ln x ist für ganzes y
uneffektiv.
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
→ Bibliotheken für Java → HUMath → HUMath.InOut→
ReadWin
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Über der Klassenbezeichnung ReadWin sehen wir den
package-Namen HUMath.InOut.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Über der Klassenbezeichnung ReadWin sehen wir den
package-Namen HUMath.InOut.
Wenn wir Methoden aus dieser Klasse in unserem Programm
benutzen wollen, müssen wir sie importieren.
Wir schreiben am Anfang unseres java-Programmes
<name>.java die Zeile(n):
import HUMath.InOut.ReadWin; bzw.
import HUMath.InOut.*; - zum Importieren aller Klassen
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Dann können wir die (statischen) Methoden (z.B. getDouble)
aus der Klasse ReadWin zum Einlesen von Daten benutzen:
Beispiel: double rad = ReadWin.getDouble(”Radius = ”);
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
Sehen Sie sich auch die anderen Klassen dieses Paketes an!
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Nutzung von Bibliotheken
I
Benutzen statischer Methoden
I
Import von Bibliotheken
I
Bemerkung:
Beenden Sie Ihr Programm (bei der Nutzung graphischer
Elemente) mit System.exit(0);
oder per Hand mit ˆC.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Bereitstellen von (externen) Bibliotheken
I
Der import von Bibliotheken wurde schon besprochen.
Damit zusätzliche Bibliotheken verwendet werden können,
müssen sie für Java erreichbar sein.
Man sagt: Die Bibliotheken müssen im Pfad stehen.
Überprüfung: echo $CLASSPATH
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Bereitstellen von (externen) Bibliotheken
I
Der import von Bibliotheken wurde schon besprochen.
Damit zusätzliche Bibliotheken verwendet werden können,
müssen sie für Java erreichbar sein.
Man sagt: Die Bibliotheken müssen im Pfad stehen.
Überprüfung: echo $CLASSPATH
.:/usr/math/java/lib/:/usr/math/java/lib/LAPACK/jlapack0.3a/classes.zip:/usr/math/java/lib/JNL/Classes/jnlmod.zip:/usr/math/java/lib/HUMath/HUMath.zip:
/usr/math/java/lib/OR-Objects/or124cp.jar:
/usr/math/java/lib/J Spline/jspline.jar:
/usr/math/java/lib/Jama/Jama-1.0.1.zip:
/usr/math/java/lib/ODE/odeToJava.jar:
/usr/math/jmsl/jmsl5.0/imsl/jmsl500/lib/jmsl.jar
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Grundelemente von Java
Bereitstellen von (externen) Bibliotheken
I
Der import von Bibliotheken wurde schon besprochen.
Damit zusätzliche Bibliotheken verwendet werden können,
müssen sie für Java erreichbar sein.
Man sagt: Die Bibliotheken müssen im Pfad stehen.
Überprüfung: echo $CLASSPATH
I
Merke: Was man lesen kann, kann man auch kopieren!
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
Manchmal benötigt man eine Variable in einem anderen Typ.
Schreibt man: double x = 47.11;
int i = x;
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
Manchmal benötigt man eine Variable in einem anderen Typ.
Schreibt man: double x = 47.11;
int i = x;
bekommt man folgende Fehlermeldung:
I
I
format.java:12: possible loss of precision
found : double
required: int
int i = x;
ˆ
1 error
Kompakte Schreibweisen sind hilfreich.
”Überschreiben” von Variablen
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
Daher ist eine Typumwandlung nötig. Man wendet den
cast-Operator an:
(neuerTyp) Objekt
Beispiel: int i = (int) x;
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
Mehrfacher Zuweisungsoperator: a = b = c; bedeutet
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
Mehrfacher Zuweisungsoperator: a = b = c; bedeutet
b = c;
a = b;
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
Mehrfacher Zuweisungsoperator: a = (b = c); bedeutet
b = c;
a = b; (rechts assoziativ)
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
Oft haben Anweisungen die Form x = x op y;
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
Oft haben Anweisungen die Form x = x op y;
Beispiel: x = x + y;
Kurzform: x += y; oder allgemein
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
Typ objekt op = Ausdruck;
was bedeutet: Typ objekt = (Typ)(objekt op Ausdruck);
I
Inkrement (++) und Dekrement (--) Operator
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
erhöht bzw. erniedrigt die Variable um 1.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
erhöht bzw. erniedrigt die Variable um 1.
In der Form x ++ (auch x++ ) nachdem er benutzt wird
und in der Form ++ x bevor er benutzt wird.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
erhöht bzw. erniedrigt die Variable um 1.
In der Form x ++ (auch x++ ) nachdem er benutzt wird
und in der Form ++ x bevor er benutzt wird.
Beispiel: int x = 0; int y = x++ +2;
Nach der Ausführung ist x = 1 und y = 2.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
erhöht bzw. erniedrigt die Variable um 1.
In der Form x ++ (auch x++ ) nachdem er benutzt wird
und in der Form ++ x bevor er benutzt wird.
Beispiel: int x = 0; int y = x++ +2;
Nach der Ausführung ist x = 1 und y = 2.
int x = 0; int y = ++x +2;
Nach der Ausführung ist x = 1 und y = 3.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Typumwandlungen
Typumwandlungen und Kurzformen
I
Typumwandlungen
I
Kompakte Schreibweisen sind hilfreich.
I
”Überschreiben” von Variablen
I
Inkrement (++) und Dekrement (--) Operator
erhöht bzw. erniedrigt die Variable um 1.
Oft wird nur der Befehl x++; benutzt.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die while-Anweisung
Häufig sollen Anweisungen abhängig von einer Bedingung
abgearbeitet werden.
while ( boolescher Ausdruck )
Anweisung
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die while-Anweisung
Häufig sollen Anweisungen abhängig von einer Bedingung
abgearbeitet werden.
while ( boolescher Ausdruck )
Anweisung
Die Anweisung wird ausgeführt,
solange der boolescher Ausdruck = true ist.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die while-Anweisung
Häufig sollen Anweisungen abhängig von einer Bedingung
abgearbeitet werden.
while ( boolescher Ausdruck )
Anweisung
Zweite Variante (nicht abweisende while-Schleife):
do
Anweisung
while ( boolescher Ausdruck );
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die while-Anweisung
Häufig sollen Anweisungen abhängig von einer Bedingung
abgearbeitet werden.
while ( boolescher Ausdruck )
Anweisung
do
Anweisung
while ( boolescher Ausdruck );
Die Anweisung wird mindestens einmal ausgeführt und, solange der
boolescher Ausdruck = true ist, fortgefahren.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
dient der Ausführung von Anweisungen, wenn mehrere Fälle
berücksichtigt werden sollen.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
switch ( Ausdruck ) {
case Konstante 1 :
Anweisung 1
break;
case Konstante 2 :
Anweisung 2
break;
..
.
default:
DefaultAnweisung
}
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
switch ( Ausdruck ) {
case Konstante 1 :
Anweisung 1
break;
case Konstante 2 :
Anweisung 2
break;
..
.
default:
DefaultAnweisung
}
Typ: byte, char, short, int, long
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
switch ( Ausdruck ) {
case Konstante 1 :
Anweisung 1
break;
case Konstante 2 :
Anweisung 2
break;
..
.
default:
DefaultAnweisung
}
Typ: byte, char, short, int, long
vom Typ des Ausdrucks
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
switch ( Ausdruck ) {
case Konstante 1 :
Anweisung 1
break;
case Konstante 2 :
Anweisung 2
break;
..
.
default:
DefaultAnweisung
}
Typ: byte, char, short, int, long
vom Typ des Ausdrucks
falls break fehlt, fall through
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Die switch-Anweisung
switch ( Ausdruck ) {
case Konstante 1 :
Anweisung 1
break;
case Konstante 2 :
Anweisung 2
break;
..
.
default:
DefaultAnweisung
}
Typ: byte, char, short, int, long
vom Typ des Ausdrucks
falls break fehlt, fall through
falls Ausdruck 6= Konstante i, ∀i
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Weitere Sprachelemente
Beispiel
int i, erg;
..
.
switch (i){
case 1:
erg=1;
break;
case 6:
erg=2;
break;
default:
erg=0;
}
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Felder
Felder - Arrays
Variable gleichen Types können in Feldern (array)
zusammengefasst werden.
Typ[] feldname;
oder
Typ feldname[];
dabei kann unter Benutzung des new-Operators gleich die
Dimension zugewiesen werden
Typ[] feldname= new Typ[<ganze Zahl >];
Beispiel: double[] vektor = new double[5];
auch eine Initialisierung ist möglich.
Beispiel: double[] vektor = {1.9, 1e-6, 9.9};
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Felder
Benutzung von Feldern, mehrdimensionale Felder
I
Um auf ein einzelnes Feldelement zuzugreifen wird
feldname[<index>] geschrieben.
<index> ist dabei ein ganzzahliger Ausdruck vom Typ int.
Beispiel: feldname[4]
I
Der Index beginnt stets bei 0.
I
Jedem Feld ist die Variable length zugeordnet, die mit
feldname.length abgefragt werden kann.
I
Mehrdimensionale Felder (z.B. Matrizen, Tensoren) werden
durch Felder von Feldern realisiert.
Beispiel: double[][] feldname = new double[3][7];
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Felder
Kopieren von Feldern
Sollen die Inhalte eines Feldes feld 1 in ein Feld feld 2 kopiert
werden gibt es zwei Möglichkeiten:
1. Es wird elementweise gemacht
for(int i=0; i < feld 1.length; i++) feld 2[i] = feld 1[i];
2. Es wird die Systemroutine System.arraycopy benutzt:
arraycopy(Object quelle, int quellindex, Object ziel, int
zielindex, int laenge);
Beispiel: System.arraycopy(feld 1, 0, feld 2, 0, feld 1.length);
Die Variante feld 2 = feld 1; ist falsch, weil damit das Objekt
feld 2 mit dem Objekt feld 1 identifiziert wird.
Beide bezeichnen jetzt das selbe Objekt.
Ändere ich feld 1, so ändert sich automatisch feld 2 mit.
Vorlesung ”Einführung Wissenschaftliches Rechnen”-BZQ I
Vorlesung 2
Nun frisch ans Werk!
Jetzt können die ersten anspruchsvollen Java-Programme
entstehen. Viel Spaß dabei!
Herunterladen