studyklar
GdI 2 · Probeklausur Teil 1 · Aufgabe 1

Schulnote als Text ausgeben: switch statt if

Aus der Zahl 3 soll das Wort „Befriedigend“ werden, ohne ein einziges if. Das Werkzeug dafür heißt switch. Rechts steht das fertige Programm mit einem Test, die Zeilen zum aktuellen Schritt sind hervorgehoben. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 1

Es soll eine Methode „gibNoteAus“ geschrieben werden. Sie bekommt eine Schulnote als ganze Zahl übergeben (von 1 bis 6). Für den Wert 1 soll „Sehr gut“ auf der Konsole ausgegeben werden, für 2 „Gut“, für 3 „Befriedigend“, für 4 „Ausreichend“, für 5 und 6 „Nicht bestanden“. Bei anderen Werten soll „Keine gültige Note“ ausgegeben werden.

Verwenden Sie kein „if“.

Gesucht ist eine Methode gibNoteAus. Sie bekommt eine ganze Zahl und schreibt das passende Wort auf die Konsole. Sie gibt nichts zurück, sie gibt nur aus.

Das Verbot von if zeigt, was geprüft wird: Kennen Sie switch? switch vergleicht einen Wert mit mehreren festen Fällen und führt den passenden aus.

Merke: Ein Wert, viele feste Möglichkeiten: Das ist der Fall für switch. Was zu keinem Fall passt, fängt default ab.
  1. Den Kopf der Methode schreiben.
  2. switch mit einem Fall je Note 1 bis 4.
  3. 5 und 6 in einem Fall zusammenfassen.
  4. default für alle anderen Werte.
  5. Mit gültigen und ungültigen Noten testen.
  6. Dieselbe Lösung in der älteren Form mit break.

Der Kopf der Methode

    public static void gibNoteAus(int note) {

Die Methode bekommt die Note als ganze Zahl, also einen Parameter int note. Sie schreibt auf die Konsole und liefert keinen Wert zurück. Darum steht vor dem Namen void („leer“, keine Rückgabe).

static heißt: Man ruft sie ohne Objekt auf, direkt aus main. In der Klausur gibt der richtige Kopf schon Punkte: Name wie verlangt, ein int-Parameter, void.

Aus Vorlesung 4, Folie 3 („Methoden mit Parametern“): Was in den Klammern hinter dem Namen steht, bekommt die Methode beim Aufruf übergeben; in der Methode ist es eine normale Variable.

switch: ein Fall je Note

        switch (note) {            case 1 -> System.out.println("Sehr gut");            case 2 -> System.out.println("Gut");            case 3 -> System.out.println("Befriedigend");            case 4 -> System.out.println("Ausreichend");

switch (note) nimmt den Wert von note und sucht den case mit genau diesem Wert. Hinter dem Pfeil -> steht, was dann passiert. Ist note gleich 3, läuft nur Zeile 15: Ausgabe „Befriedigend“.

Bei der Pfeil-Form läuft nur die eine Anweisung hinter dem Pfeil. Danach ist der switch fertig. Ein break braucht man hier nicht.

Aus Vorlesung 2, Folie 12 („Vereinfachte switch-case-Anweisung“): Statt Doppelpunkt steht ->; ausgeführt wird nur die Anweisung direkt hinter dem passenden case, darum ist kein break nötig.
Aus Blatt 2, Aufgabe 4 („Postleitzahl: Region aus der ersten Ziffer mit switch“): Dort wählt ein switch aus der ersten Ziffer einer Postleitzahl die Region.
Noch 5 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Das Programm Noten

Methode gibNoteAus und Test

Abbildung 1Das Programm Noten

Methode gibNoteAus und Test

public class Noten {     public static void main(String[] args) {        int[] tests = {1, 2, 3, 4, 5, 6, 0, 7, -2};        for (int note : tests) {            System.out.print(note + ": ");            gibNoteAus(note);        }    }     public static void gibNoteAus(int note) {        switch (note) {            case 1 -> System.out.println("Sehr gut");            case 2 -> System.out.println("Gut");            case 3 -> System.out.println("Befriedigend");            case 4 -> System.out.println("Ausreichend");            case 5, 6 -> System.out.println("Nicht bestanden");            default -> System.out.println("Keine gültige Note");        }    }}
noteAusgabeFall
1Sehr gutcase 1
2Gutcase 2
3Befriedigendcase 3
4Ausreichendcase 4
5 oder 6Nicht bestandencase 5, 6
jede andere ZahlKeine gültige Notedefault
LegendeDas ganze Programm und jede Note mit ihrer Ausgabe.