Letzte Änderung:
20.03.2012
Franklin Delano Roosevelt
20.03.2012
Spruch des Tages
Ich stehe Statistiken etwas skeptisch gegenüber. Denn laut Statistik haben ein Millionär und ein armer Kerl jeweils eine halbe Million.Franklin Delano Roosevelt
Operatoren Arithmetische Operatoren
In Programmen werden regelmäßig Berechnungen durchgeführt und deren Ergebnisse in Variablen abgespeichert. Um Berechnungen durchzuführen, werden mathematische Operatoren benötigt. Hierzu stehen Ihnen in Programmiersprachen mindestens die mathematischen Grundoperatoren zur Addition +, Subtraktion -, Multiplikation * und Division / zur Verfügung. Bei der Verwendung der Operatoren ist darauf zu achten, dass auch bei den Programmiersprachen die Rechenregel „Punktrechnung vor Strichrechnung“ gilt. Um die Ausführungsreihenfolge zu verändern, können Sie Klammern setzen. Bei diesen Klammern handelt es sich um runde Klammern (). Eine Rechenoperation besteht allgemein aus einer Variablen, der das Ergebnis der Rechnung zugewiesen wird, und der Rechnung, die den Ausdruck repräsentiert. Das folgende Beispiel zeigt eine Addition zweier Zahlen.
Ergebnis = 5 + 8 ;
Hier wird der Variablen Ergebnis das Resultat der Addition von 5 und 8 zugewiesen.
Java spezifische Besonderheiten
In den meisten Programmiersprachen existieren noch weitere Operatoren neben denen für die Grundrechenarten. In Java gibt es nur einen, den Modulo-Operator %. Mit diesem Operator erhalten sie als Ergebnis den Rest einer Ganzzahldivision. Diese Rechnung tritt sehr häufig bei mathematischen Problemen, wie z. B. bei der Umrechnung einer Dezimalzahl in eine Binärzahl, auf. Ihnen wird diese Art von Rechnung bereits in der Grundschule begegnet sein. Dort wurde z. B. ein Kuchen mit 18 Stücken auf 5 Personen verteilt und die Frage war stets: Wie viele Stücke bleiben übrig, wenn jede Person gleich viele Stücke bekommt? Das Ergebnis dieser Rechnung liefert Ihnen der Modulo-Operator.
Eine weitere Besonderheit bei Java ist die Division. Hierzu zunächst ein Beispiel:
zahl = 5.0 / 2 ;
Diese Rechnung ergibt als Resultat 2.5. Verändern wir jedoch die Rechnung wie folgt:
zahl = 5 / 2 ;
Dann ist das Ergebnis 2. In der zweiten Rechnung sind beide Operanden von einem Ganzzahl-Datentyp, daraus resultiert bei der Programmiersprache Java, dass eine Ganzzahldivision durchgeführt wird. Um eine Gleitkommadivision zu erhalten, muss mindestens ein Operand ein Gleitkomma-Datentyp sein. Dies bedeutet bei Literalen, dass ein Punkt als Gleitkommazeichen vorhanden sein muss. Sind beide Operanden Variablen, muss eine Variable vom Gleitkomma-Datentyp sein.
Nun kann es jedoch vorkommen, dass beide Variablen Ganzzahl-Datentypen sind. Diese sollen geteilt werden und das Ergebnis soll ein Gleitkommawert sein. In diesem Fall können sogenannte type casts verwendet werden. Ein type cast ist eine explizite Datentypkonvertierung. Dabei wird der Variablen, die zur Berechnung in einen anderen Datentyp konvertiert werden muss, der benötigte Datentyp in runden Klammern vorangestellt. Der Effekt ist, dass die Variable für diese Rechnung als ein anderer Datentyp angesehen wird.
Beispiel:
Es soll eine Gleitkomma-Division durchgeführt werden, bei der beide Operanden vom Datentyp int sind. Das Ergebnis soll in einer Variablen vom Datentyp double gespeichert werden.
public static void main (String[] args)
{
double Ergebnis=0 ;
int Operand1=5, Operand2=2 ;
Ergebnis = Operand1 / Operand2 ; //Das Ergebnis lautet 2
// mit type cast
Ergebnis = Operand1 / (double)Operand2 ; //Jetzt lautet das Ergebnis 2.5
}
Den umgekehrten Fall, das Erzwingen einer Ganzzahldivision mit zwei Gleitkommavariablen, zeigt das nachstehende Beispiel:
public static void main (String[] args)
{
int Ergebnis=0 ;
double Operand1=5.4, Operand2=2.0 ;
// mit type cast
Ergebnis = (int) Operand1 / (int) Operand2 ; // Das Ergebnis lautet 2
}
Neben den bereits dargestellten Rechenoperationen existiert in Java die Möglichkeit, die Schreibweise von Operationen zu verkürzen. Hierbei handelt es sich um Rechenoperationen auf Variablen, die das Ergebnis der Rechenoperation der Variablen wieder selbst zuweisen. Ein Beispiel hierzu ist die Addition einer Zahl auf den Wert einer Variablen.
i = i + 5 ;
Nun die verkürzte Schreibweise:
i += 5 ;
Beide Anweisungen erzielen dasselbe Ergebnis.
Diese Kurzschreibweise ist bei allen Java-Operatoren möglich.
Wenn der Wert einer Variablen jedoch nur um den Wert 1 erhöht oder verringert werden soll, spricht der Programmierer vom Inkrement (erhöhen) bzw. Dekrement (verringern). Hierzu bieten viele Programmiersprachen, so auch Java, eine weitere verkürzte Schreibweise an.
i++ ; // erhöhe den Wert der Variablen i um 1
i-- ; // verringere den Wert der Variablen i um 1
Diese Schreibweise ist sehr kurz und wird daher häufig zum Zählen verwendet. Aber auch bei Zuweisungen kann diese Operation auftreten. Das sieht dann wie folgt aus:
Entweder
k = i++ ;
oder
k = ++i ;
Bei beiden Anweisungen wird der Wert der Variablen i um den Wert 1 erhöht. Der Inhalt von k ist jedoch unterschiedlich. Während bei der ersten Anweisung k = i++ zuerst der Wert der Variablen i der Variablen k zugewiesen wird und danach erst der Inhalt der Variablen i um eins erhöht wird, erfolgt in der zweiten Anweisung k = ++i zuerst die Erhöhung der Variablen i und danach erst die Zuweisung des Wertes an die Variable k. Die erste Variante wird als Postfix-Notation und die zweite als Präfix-Notation bezeichnet.
Damit haben Sie nun drei Möglichkeiten kennen gelernt, eine Variable um den Wert 1 zu erhöhen oder verringern:
i = i + 1 ;
i += 1 ;
i++ ;
Mathematische Methoden
Zur Berechnung quadratischer mathematischer Probleme ist es notwendig, die Wurzel aus berechneten Werten ziehen zu können. Da es sich bei dieser Operation nicht um eine Grundrechenart handelt, befindet sie sich in einer Bibliothek, die von Java angeboten wird, der Math-Bibliothek. Dort können wir, durch Aufruf der Methode Math.sqrt (zahl), die Wurzel aus einer Zahl ziehen. Wenn Sie neben dieser hier genannten Methode andere mathematische Funktionalitäten benötigen, finden Sie sie in der Regel ebenfalls in dieser Bibliothek.
Beispiel:
public static void main (String[] args)
{
double z = Math.sqrt (9) ;
System.out.printf (“Die Wurzel aus 9 lautet: %g“, z);
}
Die Wurzel aus 9 lautet 3