Klausur und Prüfung
Was gibt das Programm aus? So übst du die Java-Klausuraufgabe
Veröffentlicht am 22. Oktober 20265 Min. Lesezeit
Auf dem Klausurblatt steht ein kurzes Java-Programm und darunter eine Frage: „Was gibt das Programm aus?“ Du liest den Code, er sieht harmlos aus, und trotzdem stimmt am Ende eine Zeile nicht. Diese Aufgabe kommt in Schule, Berufsschule und Uni immer wieder vor. Hier lernst du, wie du sie Schritt für Schritt löst, welche Fallen fast immer drin sind und wie du sie gezielt übst.
Warum diese Aufgabe so viele Punkte kostet
Beim Programmieren am Rechner sagt dir der Computer, was herauskommt. In der Klausur bist du selbst der Computer. Das ist eine andere Fähigkeit als Code schreiben: Du musst jede Zeile genau so ausführen, wie Java sie ausführt, nicht so, wie du sie gemeint hättest.
Die meisten Fehler entstehen nicht, weil jemand Schleifen nicht verstanden hat. Sie entstehen, weil man im Kopf abkürzt. Man „sieht“, dass eine Schleife viermal läuft, und rechnet den letzten Durchlauf nicht mehr mit. Oder man übersieht, dass 7 / 2 in Java 3 ergibt. Genau diese Details prüft die Aufgabe.
So gehst du vor: Schritt für Schritt
- Beginne bei
main. Dort startet das Programm. Methoden darüber laufen erst, wenn sie aufgerufen werden. - Lege eine Trace-Tabelle an. Jede Variable bekommt eine Spalte, jede Änderung eine neue Zeile.
- Führe jede Zeile einzeln aus. Keine Abkürzungen, auch nicht beim dritten Schleifendurchlauf.
- Schreib die Ausgabe sofort mit. Achte auf
print(ohne Zeilenumbruch) undprintln(mit Zeilenumbruch). - Prüfe am Ende Leerzeichen und Zeilen. Ein fehlendes Leerzeichen in
i + " " + jkann in der Bewertung zählen.
Beispiel mit Trace-Tabelle
public class Main { public static void main(String[] args) { int x = 1; for (int i = 0; i < 4; i++) { x = x * 2 + i; } System.out.println(x); }}
So sieht die Tabelle aus. Die Bedingung i < 4 prüfst du vor jedem Durchlauf:
| i | i < 4? | x danach |
|---|---|---|
| – | – | 1 |
| 0 | ja | 1 · 2 + 0 = 2 |
| 1 | ja | 2 · 2 + 1 = 5 |
| 2 | ja | 5 · 2 + 2 = 12 |
| 3 | ja | 12 · 2 + 3 = 27 |
| 4 | nein | Schleife endet |
27
Die Tabelle wirkt am Anfang langsam. In der Klausur ist sie schneller als ein zweiter Versuch, weil du einen Fehler sofort findest. Wenn dir der Ablauf von for und while noch nicht sicher ist, lies zuerst Schleifen in Java.
Die Fallen, die fast immer drin sind
Prüfer bauen gern Stellen ein, an denen der Code anders arbeitet, als er aussieht. Die meisten gehören zu einer dieser Gruppen.
Ganzzahldivision und String-Verkettung
public class Main { public static void main(String[] args) { int a = 7; int b = 2; System.out.println(a / b); System.out.println(a % b); System.out.println(a / 2.0); System.out.println("Sum: " + a + b); System.out.println(a + b + " is the sum"); }}
3 1 3.5 Sum: 72 9 is the sum
7 / 2mit zweiintschneidet ab und ergibt3. Erst mit2.0wird mit Kommazahlen gerechnet.+wird von links nach rechts ausgewertet. Steht links schon ein String, wird alles danach angehängt:"Sum: " + 7ergibt"Sum: 7", dann kommt2dazu. In der letzten Zeile rechnet Java zuerst7 + 2, weil links noch kein String steht.
Strings ändern sich nicht, Arrays schon
public class Main { static void change(int n, int[] values) { n = 99; values[0] = 99; }
public static void main(String[] args) { String s = "Java"; s.toUpperCase(); System.out.println(s);
int i = 5; int j = i++ + ++i; System.out.println(i + " " + j);
int n = 1; int[] values = {1, 2}; change(n, values); System.out.println(n + " " + values[0]); }}
Java 7 12 1 99
s.toUpperCase()liefert einen neuen String,sbleibt"Java". Mehr dazu in Strings in Java.i++liefert erst den alten Wert (5) und erhöht dann auf 6.++ierhöht zuerst auf 7 und liefert 7. Also istj = 5 + 7 = 12undi = 7.- Eine Methode bekommt bei
inteine Kopie des Werts. Bei einem Array bekommt sie einen Verweis auf dasselbe Array. Deshalb bleibtnbei 1, abervalues[0]wird 99. Wie Parameter genau funktionieren, steht in Methoden und Rekursion.
Weitere Klassiker
- Grenzen von Schleifen:
i < 5oderi <= 5? Rechne den ersten und den letzten Durchlauf immer aus. - Bedingungen ohne Klammern: Nach
if (x > 3)ohne geschweifte Klammern gehört nur die nächste Zeile zumif. Siehe Bedingungen in Java. - switch ohne break: Fehlt
break, läuft der Code in die nächsten Fälle weiter. - Rekursion: Schreib jeden Aufruf auf eine eigene Zeile und rechne von unten nach oben zurück.
So übst du richtig
Code lesen allein reicht nicht. Wirksam ist ein fester Ablauf:
- Erst vorhersagen. Schreib deine Ausgabe vollständig auf, bevor du etwas ausführst.
- Dann vergleichen. Lass das Programm laufen und vergleiche Zeile für Zeile.
- Fehler benennen. War es Ganzzahldivision, ein Durchlauf zu viel,
i++? Notiere es. Nach ein paar Aufgaben siehst du, welche Falle dich immer wieder erwischt. - Code verändern. Tausche
<gegen<=oderi++gegen++iund sage die neue Ausgabe voraus. - Auf Papier üben. In der Klausur hast du keinen Rechner. Wie du dich darauf einstellst, steht in Java-Klausur auf Papier.
Wichtig ist die Reihenfolge. Wer zuerst ausführt und dann „nachvollzieht“, trainiert nur das Wiedererkennen. ChatGPT kann dir eine Ausgabe erklären, aber vorhersagen musst du sie selbst. Wie du KI dabei sinnvoll einsetzt, liest du in Mit ChatGPT Java lernen.
Ausgabe-Aufgaben in Jario
In Jario gibt es eigene Aufgaben vom Typ „Was gibt das Programm aus?“. Du siehst ein Programm, gibst deine Vorhersage ein und vergleichst sie danach mit der echten Ausgabe. Das passt genau zum Ablauf oben: erst denken, dann prüfen.
Dazu kommt der Editor im Browser. Du kannst jedes Beispiel aus diesem Artikel hineinkopieren, eine Zeile ändern und mit „Ausführen“ sofort sehen, was passiert. Du musst nichts installieren. Wenn du nicht verstehst, warum die Ausgabe anders ist als erwartet, gibt dir der KI-Tutor einen Hinweis in kleinen Schritten, statt dir die Antwort vorzusagen. Die Aufgaben reichen von „Leicht“ bis „Schwer“, die ersten beiden Kapitel sind mit kostenlosem Konto frei.
Welche Themen du in welcher Reihenfolge üben solltest, damit dich keine Falle überrascht, zeigt Java lernen: die richtige Reihenfolge.
Kurz gesagt
- Starte bei
mainund führe jede Zeile einzeln aus. - Nutze eine Trace-Tabelle, vor allem bei Schleifen.
- Achte auf Ganzzahldivision, String-Verkettung,
i++und++i, Schleifengrenzen und Verweise auf Arrays. - Übe immer in der Reihenfolge: vorhersagen, ausführen, vergleichen, Fehler benennen.
Passende Artikel zum Lernen
- SchleifenJava Schleifen einfach erklärt: for, while, do-while, break und continue mit Beispielen. Plus die typischen Fehler, die in Klausuren Punkte kosten.Zum Artikel
- StringsJava Strings einfach erklärt: substring, charAt, split, equals und StringBuilder mit Beispielen. Plus typische Fehler wie der Vergleich mit ==.Zum Artikel
- Methoden und RekursionJava Methoden einfach erklärt: Parameter, return, Überladen, varargs und Rekursion mit Beispielen. Plus typische Fehler wie ein fehlendes return.Zum Artikel
Weitere Beiträge
- Klausur und PrüfungInformatik-Abi mit JavaInformatik-Abitur oder Klausur mit Java in 3 Wochen: Was du zuerst klären musst, ein Lernplan Woche für Woche und wie du Code schreiben ohne Rechner übst.Weiterlesen
- Klausur und PrüfungÜbungsblätter ohne NachtschichtKlausurzulassung über Übungsblätter: So teilst du ein Blatt auf die Woche auf, testest deinen Code vor der Abgabe und holst dir Hilfe ohne Plagiat.Weiterlesen
- Klausur und PrüfungIHK-Prüfung: ProgrammierenIHK-Prüfung Fachinformatiker Anwendungsentwicklung: Wie viel Programmieren in AP1 und AP2 steckt, ob Pseudocode reicht und wie du dich gezielt vorbereitest.Weiterlesen