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

  1. Beginne bei main. Dort startet das Programm. Methoden darüber laufen erst, wenn sie aufgerufen werden.
  2. Lege eine Trace-Tabelle an. Jede Variable bekommt eine Spalte, jede Änderung eine neue Zeile.
  3. Führe jede Zeile einzeln aus. Keine Abkürzungen, auch nicht beim dritten Schleifendurchlauf.
  4. Schreib die Ausgabe sofort mit. Achte auf print (ohne Zeilenumbruch) und println (mit Zeilenumbruch).
  5. Prüfe am Ende Leerzeichen und Zeilen. Ein fehlendes Leerzeichen in i + " " + j kann 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:

ii < 4?x danach
––1
0ja1 · 2 + 0 = 2
1ja2 · 2 + 1 = 5
2ja5 · 2 + 2 = 12
3ja12 · 2 + 3 = 27
4neinSchleife 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 / 2 mit zwei int schneidet ab und ergibt 3. Erst mit 2.0 wird mit Kommazahlen gerechnet.
  • + wird von links nach rechts ausgewertet. Steht links schon ein String, wird alles danach angehängt: "Sum: " + 7 ergibt "Sum: 7", dann kommt 2 dazu. In der letzten Zeile rechnet Java zuerst 7 + 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, s bleibt "Java". Mehr dazu in Strings in Java.
  • i++ liefert erst den alten Wert (5) und erhöht dann auf 6. ++i erhöht zuerst auf 7 und liefert 7. Also ist j = 5 + 7 = 12 und i = 7.
  • Eine Methode bekommt bei int eine Kopie des Werts. Bei einem Array bekommt sie einen Verweis auf dasselbe Array. Deshalb bleibt n bei 1, aber values[0] wird 99. Wie Parameter genau funktionieren, steht in Methoden und Rekursion.

Weitere Klassiker

  • Grenzen von Schleifen: i < 5 oder i <= 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 zum if. 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:

  1. Erst vorhersagen. Schreib deine Ausgabe vollständig auf, bevor du etwas ausführst.
  2. Dann vergleichen. Lass das Programm laufen und vergleiche Zeile für Zeile.
  3. Fehler benennen. War es Ganzzahldivision, ein Durchlauf zu viel, i++? Notiere es. Nach ein paar Aufgaben siehst du, welche Falle dich immer wieder erwischt.
  4. Code verändern. Tausche < gegen <= oder i++ gegen ++i und sage die neue Ausgabe voraus.
  5. 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 main und 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

Weitere Beiträge