Kapitel 1
Ein- und Ausgabe
Jedes Programm in diesem Kapitel macht dasselbe: Es liest etwas ein, rechnet damit und gibt ein Ergebnis aus. Mehr braucht es für die ersten Aufgaben nicht.
Der Rahmen ist immer gleich. Dein Code steht zwischen den geschweiften Klammern von main, Java führt ihn Zeile für Zeile von oben nach unten aus. Was public class und static genau bedeuten, kommt in späteren Kapiteln. Bis dahin kannst du den Rahmen einfach stehen lassen.
Ausgabe und Variablen
Mit System.out.println(...) gibst du eine Zeile aus. Eine Variable ist ein benannter Speicherplatz für einen Wert. Beim Anlegen schreibst du den Typ davor:
intfür ganze Zahlen, z. B.int age = 19;doublefür Kommazahlen, z. B.double price = 4.99;(mit Punkt, nicht mit Komma)Stringfür Text in doppelten Anführungszeichen, z. B.String name = "Ada";
Mit + hängst du Texte und Werte aneinander. Jede Anweisung endet mit einem Semikolon.
Probier es aus: Ändere den Namen oder das Alter und führe das Beispiel noch einmal aus.
Eingaben lesen und rechnen
Ein Scanner liest, was jemand in die Konsole tippt. nextInt() holt die nächste ganze Zahl, nextDouble() die nächste Kommazahl und nextLine() eine ganze Zeile Text. Leerzeichen und Zeilenumbrüche zwischen Zahlen sind egal.
Java rechnet mit +, -, *, / und %. Zwei Dinge sind neu:
- Teilst du zwei
int-Werte, fallen die Nachkommastellen weg:17 / 5ergibt3. %(Modulo) liefert den Rest der Division:17 % 5ergibt2.
Sobald eine Kommazahl beteiligt ist, rechnet Java mit Nachkommastellen, zum Beispiel / 2.0 statt / 2.
Im Feld „Eingabe“ steht, was das Programm liest. Ändere die Zahlen und schau, wie sich Ergebnis und Rest verändern.
Schön formatieren mit printf
Kommazahlen haben oft viele Nachkommastellen. Mit System.out.printf legst du fest, wie ein Wert aussieht. Im Text stehen Platzhalter, die der Reihe nach durch die Werte dahinter ersetzt werden:
%.2f: Kommazahl mit genau zwei Nachkommastellen (gerundet)%d: ganze Zahl%s: Text%n: Zeilenumbruch (printfmacht von sich aus keinen)
Typische Fehler
Ganzzahlige Division
double average = (2 + 3) / 2;ergibt2.0, nicht2.5. Die Division passiert mit zweiint-Werten, erst danach wird das Ergebnis indoublegespeichert. Abhilfe: durch2.0teilen.Plus verbindet Text
Steht links ein Text, hängt
+alles nur noch an:System.out.println("Sum: " + 2 + 3); // Sum: 23 System.out.println("Sum: " + (2 + 3)); // Sum: 5Rechnungen in der Ausgabe deshalb in Klammern setzen.
Tippfehler, die der Compiler meldet
Java unterscheidet Groß- und Kleinschreibung:
system.out.printlnoderstringkennt es nicht. Fehlt ein Semikolon, meldet der Compiler';' expected. Die Zeilennummer in der Meldung zeigt meist auf die Stelle oder die Zeile davor.Die Ausgabe muss genau passen
Die Tests vergleichen deine Ausgabe Zeichen für Zeichen. Ein fehlendes Leerzeichen, ein Komma zu viel oder
printstattprintlnreichen, damit ein Test fehlschlägt. Vergleiche deine Ausgabe genau mit dem Beispiel der Aufgabe.