Ein Programm ist ein Problemlösungsverfahren in einer für den Computer verständlichen Form. Programme werden in einer Programmiersprache formuliert.
Vorbereitung
Um dein Wissen in Java anzuwenden, bietet es sich an, dir ein kleines Projekt zu überlegen, welches du programmieren möchtest. Dadurch lernst du, die zuvor erlernten Konzepte anzuwenden.
Ein Programm, welches sich als Einstieg sehr gut anbietet, ist ein einfacher Taschenrechner.
Doch bevor du mit dem Programmieren starten kannst, ist es wichtig, dir vorher die Struktur und die Ziele deines Programms zu überlegen.
Dadurch kannst du besser identifizieren, welche Funktionen dein Programm erfüllen soll.
Dafür kannst du dir deine einzelnen Schritte im Programm in einem Diagramm aufzeichnen:
Um einen funktionierenden Taschenrechner zu programmieren, benötigst du einen Input der User, damit das Programm weiß, welche Zahlen mit welcher Rechenoperation berechnet werden sollen.
Außerdem solltest du dir überlegen, welche Operationen dein Taschenrechner berechnen soll. Da es sich um ein Einstiegs-Projekt handelt, bieten sich die Basis-Operationen Addition, Subtraktion, Division und Multiplikation an.
Das Programm
Das Grundgerüst
Um an den Input der User zu kommen, gibt es in Java die Klasse Scanner
. Die Klasse stellt Methoden bereit, mit denen Zeichenfolgen (auch Literale) aus Strings, Dateien und Eingabe-Strömen (auch InputStream) ein- und ausgelesen werden können.
Zuerst baust du dir dein Grundgerüst. Du legst dir dafür am besten ein neues Projekt mit dem Namen Calculator
an, in dem du die Klasse Calculator
erstellst:
Besuche die App, um alle Inhalte zu sehen!
Denk daran, die Klasse gehört immer in den src-Folder deines Projekts.
Anschließend legst du die main
-Methode in deiner Klasse an:
Besuche die App, um alle Inhalte zu sehen!
Um nun die Klasse Scanner
zum Auslesen der User-Inputs nutzen zu können, musst du sie über deiner Klasse importieren:
Besuche die App, um alle Inhalte zu sehen!
Damit du diesen Scanner auch nutzen kannst, musst du deinen Code um folgende Zeile ergänzen:
Besuche die App, um alle Inhalte zu sehen!
Du kannst deinen Scanner beispielweise userInput
nennen, da du damit ja den Input deiner User:innen lesen möchtest. Du erzeugst dir mit dieser Zeile also eine Instanz der Klasse Scanner
. Da du den Inputstream aus der Konsole auslesen möchtest, übergibst du in der Klammer den Standard-Inputstream System.in
.
Dein Taschenrechner muss zwei Zahlen und das Operator-Zeichen entgegennehmen.
Dafür legst du dir erst einmal die Variablen an.
Da du auch Division implementieren möchtest, bietet es sich an, als Datentyp Double zu wählen:
Besuche die App, um alle Inhalte zu sehen!
Jetzt ist dein Grundgerüst fertiggestellt und du kannst dich an die Funktionalität deines Taschenrechners setzen.
Funktionalität implementieren
Damit die User wissen, was sie wann eingeben sollen, kannst du dir mithilfe von System.out.println()
ausgeben lassen, welcher Input von ihnen erwartet wird:
Besuche die App, um alle Inhalte zu sehen!
Jetzt musst du jedoch noch an den Input gelangen. Da dieser in den jeweiligen zuvor deklarierten Variablen gespeichert werden soll, schreibst du erst den Namen deiner Variablen, ein Gleichzeichen und dahinter userInput.nextDouble();
.
An deinem Scanner wird also die Operation nextDouble()
aufgerufen. Diese scannt die nächsten Zeichen vom Input als ein double
:
Besuche die App, um alle Inhalte zu sehen!
Wenn ein User zum Beispiel double
gelesen und in der Variablen gespeichert werden.
Da es sich bei dem Operator jedoch nicht um einen Input vom Typ double
handelt, muss auf eine andere Methode zurückgegriffen werden.
Statt nextDouble()
wird next().charAt(0)
an deinem userInput
aufgerufen. charAt(0)
benötigst du deshalb, weil next()
den nächsten String
im Input betrachtet, du jedoch nur einen char
benötigst. Damit wird einfach der Buchstabe an der nullten Position im String
in deiner Variablen operator
gespeichert:
Besuche die App, um alle Inhalte zu sehen!
Wenn der User zum Beispiel + in die Konsole schreibt, untersucht die Methode, welcher char
an der nullten Stelle steht. Da der String
hier nur aus einem Element, nämlich dem +, besteht, wird dieses Zeichen in der Variablen gespeichert.
So, jetzt hast du alle Eingaben deiner User entgegengenommen, doch nun muss auch noch gerechnet werden.
Da die auszuführende Berechnung von der ausgewählten Operation abhängig ist, fragst du mit einer if - else if - else-Verzweigung ab, um welchen der vier Operatoren es sich handelt. Wenn der/die User:in beispielsweise die Addition auswählt, also + in die Konsole eingibt, werden firstNumber
und secondNumber
addiert und anschließend in die Konsole ausgegeben, damit der/die User:in das Ergebnis auch sehen kann:
Besuche die App, um alle Inhalte zu sehen!
Falls die User einen Operator eingeben, der nicht implementiert ist, muss noch ein else
-Fall hinzugefügt werden. Dieser gibt dann einfach die Warnung in die Konsole aus, dass es sich um keine gültige Eingabe handelt:
Besuche die App, um alle Inhalte zu sehen!
Jetzt hast du erfolgreich die Funktionalität deines Taschenrechners implementiert! Doch was passiert, wenn User beispielsweise statt einer Zahl einen Buchstaben eingeben, erfährst du im zweiten Teil dieses Tutorials.