Zum Inhalt springen

Kurs:Programmierung in Java/Steuern und Rechnen

Aus Wikiversity

Während wir bisher nur grundsätzliches über Java-Programme gelernt haben, steigen wir in dieser Einheit etwas weiter herab in die Tiefen des Programmieralltags. Wie in fast allen anderen Sprachen auch gibt es auch in Java Steuerstrukturen (engl. "control structures") und arithmetische Hilfsmittel. Diese sind mithin die wichtigsten Elemente einer Programmiersprache - so auch in Java.

Zahlen Um rechnen zu können, benötigen wir zunächst einmal ein paar Zahlen. In Java gilt allerdings: Zahl ist nicht gleich Zahl. Java unterscheidet zwischen verschiedenen Arten von Zahlen, von denen wir uns aber nur die wichtigsten anschauen. In der folgenden Auflistung steht zu Beginn einer Zeile jeweils der Name des Zahlentyps (genauer: Datentyps) und daneben die besondere Eigenschaft desselben:

  • int (Ganze Zahlen zwischen und )
  • long (wie int, allerdings mit Zahlen zwischen und )
  • float (sog. Gleitkommazahlen - Zahlen mit Nachkommastellen)
  • double (wie float, allerdings mit doppelter Genauigkeit hinter dem Komma - und auch größerem Wertebereich)

Daneben gibt es noch byte und short, beides Ganzzahltypen mit Wertebereichen zwischen und bzw. und .

Die Wertebereiche bei float und double sind sehr viel größer als die der anderen Typen, jedoch leidet mit wachsenden Werten (sowohl in positive als auch in negative Richtung) die Genauigkeit der Zahlen darunter. Da dies unter Umständen zu verfälschten Ergebnissen führt, ist Vorsicht geboten. Wenn möglich, vermeiden Programmierer Arithmetik mit solchen Zahlen.

Bevor wir uns aber mit zuviel Theorie langweilen, hier ein Beispiel, was das alles zu bedeuten hat und wie man mit den Zahlen umgeht. Legen Sie eine Datei Zahlen.java an und füllen Sie sie mit folgendem Inhalt:

 public class Zahlen
 {
   public static void main(String[] args)
   {
      int a = 2;
      int b = 4;
      int c;
 
      c = b + a;
 
      System.out.println("Das Ergebnis lautet: "+ c);
   }
 }

Führen Sie das Programm nach erfolgter Übersetzung aus. Ich hoffe, Sie sind nicht allzu verblüfft vom Ergebnis.

Arithmetik

[Bearbeiten]

Im Beispiel haben Sie nun gesehen, wie man zwei int-Werte addiert. Analog kann man diese auch voneinander abziehen (mit -), multiplizieren (*) und auch dividieren (/). Bei der Division von Ganzzahlen ist zu beachten, dass Nachkommastellen verloren gehen.

Alle diese Operationen funktionieren analog auch mit den anderen Datentypen. Arithmetik funktioniert auch zwischen verschiedenen Datentypen. Es ist also problemlos möglich, einen Wert vom Typ double durch einen Wert vom Typ float zu dividieren.Bei Verknüpfungen von Gleitkomma-Werten mit Ganzzahl-Werten wird stets ein Gleitkomma-Wert ausgegeben.

Selbst-Zuweisungen

[Bearbeiten]

Es ist möglich, Berechnungen an benutzte Variablen zuzuweisen. Betrachten wir folgendes Szenario:

 int a = 2;
 int b = 4;
 a += b;

Wie Sie sehen, kann auf diese Weise der Wert von a gelesen und sofort verändert werden. Probieren Sie aus, welches Verhalten dieser Code hat. Merken Sie sich dabei die Regel, dass zunächst alles rechts vom =-Zeichen berechnet wird, bevor links davon etwas gespeichert wird.

Diese Technik sollte mit Bedacht eingesetzt werden, denn die selbe Variable mit unterschiedlichen Bedeutungen einzusetzen führt leicht zu unangenehmen Überraschungen.

Abkürzungen

[Bearbeiten]

Es kann auch direkt auf Werten gearbeitet werden. Wollen Sie zum Beispiel eine Zahl verdoppeln, so können Sie statt

a = a * 2;

auch

a *= 2;

schreiben. Analog gilt dies auch für +=, -= und /=.

und statt

a = a + 1;
b = b - 1;

auch

a++;
b--;

schreiben.

Steuern

[Bearbeiten]

Folgen von Rechenoperationen fordern uns auf die Dauer nicht wirklich heraus (den Computer übrigens auch nicht). Schön wäre es, wenn man abhängig von Ergebnissen, verschiedene Strategien verfolgen könnte.

Weiteres in Vorbereitung.