Erste Schritte Falscher case wir ausgeben

jofri

Mitglied
Hallo zusammen,

ich beschäftige mich gerade mit einem Java Buch und bin nun bei den Bedingungen angekommen. Doch irgendwie wird mir immer der letzte case ausgeben obwohl ich eigentlich ein anderen wähle. Hier einmal der Code:
Java:
package paket1;
import javax.swing.*;
public class Klasse1 {

    public static void main(String[] args)
    {
        String Note = JOptionPane.showInputDialog
                ("Gib eine Schulnote ein");
       
        int Wert = Integer.parseInt (Note);
        switch (Wert)
        {
        case 1: Note = "Sehr gut";
        case 2: Note = "Gut";       
        case 3: Note = "Befriediegend";
        case 4: Note = "Ausreichend";
        case 5: Note = "Mangelhaft";
        case 6: Note = "Ungenügend";       
        }
        JOptionPane.showMessageDialog(null, Note);
       
        }

    }
Was mach ich falsch?

Danke schonmal im Vorraus,

jofri
 

Blender3D

Top Contributor
Code:
{
         case 1: Note = "Sehr gut";
                    break;
         case 2: ...
Du hast das break nach den cases vergessen!
;)
 

Meniskusschaden

Top Contributor
Du mußt die einzelnen case-Zweige noch mit break abschliessen, denn sonst werden alle auf die erste zutreffende case-Bedingung folgenden Zweige ausgeführt. Angenommen Wert enthält die Zahl 4. Dann wird Note erst auf Ausreichend gesetzt, dann mit Mangelhaft überschrieben und schließlich nochmals mit Ungenügend überschrieben.
 
X

Xyz1

Gast
Machen wir das mal zu 100 % korrekt:
Java:
    private static String noteToString(int note) {
        String rueck = "";
        switch (note) {
            case 1:
                rueck = "Sehr gut";
                break;
            case 2:
                rueck = "Gut";
                break;
            case 3:
                rueck = "Befriediegend";
                break;
            case 4:
                rueck = "Ausreichend";
                break;
            case 5:
                rueck = "Mangelhaft";
                break;
            case 6:
                rueck = "Ungenügend";
                break;
            default:
                throw new AssertionError();
        }
        return rueck;
    }

    public static void main(String[] args) {
        System.out.println(noteToString(5));
    }

Ausgabe:
Code:
Mangelhaft

Entspricht aber nicht meiner Note, also Realität falsch Abgebildet. :D
 

Blender3D

Top Contributor
Da Du nur konstante Strings zurückgibts, wäre hier die bessere Lösung ein Array zu verwenden.

;)
Code:
public static String noteToString(int note) {

         if( note <=0 || note >6  ) return null; // oder werfe exeption
         String [] noten = {"Sehr gut","Gut","Befriediegend","Ausreichend", "Mangelhaft","Ungenügend"};
        return noten[note-1];
     }
 
X

Xyz1

Gast
Edit-time abgelaufen. Das ist natürlich nicht die Abkürzung für ein Leerzeichen, sondern bedeutet einfach nur Rueckgabe, das ist einfach nur ein Spaß. :D
 
X

Xyz1

Gast
Jow, das ist fast die Differenz zwischen Deiner und meiner Note. Blende hier mal nicht so rum. :D
 

Jardcore

Top Contributor
Statt der ganzen breaks kann man auch einfach gleich den String zurückgeben.
Bei der Array Lösung jedesmal ein neues Array anzulegen ist auch nicht das gelbe vom Ei :)

Würde als optimale Lösung die von derWissende nehmen und die rueck variable rauskicken. Dafür
Java:
switch(note) {
    case 1: return "sehr gut";
    case 2: return "gut";
    //...
    default: throw IllegalArgumentException("Für die Note " + note + " ist kein Text hinterlegt"); // oder was auch immer man will
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Falscher Link zum Path? Unterschiedliche Antworten bei Eclipse und VisualStudiocode Java Basics - Anfänger-Themen 5
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
P falscher booleanwert bei toString Java Basics - Anfänger-Themen 4
N Fehlerausgabe bei falscher Eingabe der Users Java Basics - Anfänger-Themen 3
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
L Bei falscher Eingabe soll NaN zurückgegeben werden, Rückgabetyp jedoch double Java Basics - Anfänger-Themen 3
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
M Ausgabe in falscher Reihenfolge Java Basics - Anfänger-Themen 7
E Felder bei falscher Eingabe leeren Java Basics - Anfänger-Themen 8
P Classpath falscher Classpath, aber nicht immer Java Basics - Anfänger-Themen 19
B Erste Schritte Eclipse Indigo sucht jvm.dll an "falscher" Stelle Java Basics - Anfänger-Themen 2
N falscher Wochentag GreogrianCalendar Java Basics - Anfänger-Themen 6
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
L Fehlermeldung bei falscher Berechnung anzeigen Java Basics - Anfänger-Themen 31
A OOP falscher Code Java Basics - Anfänger-Themen 8
F Abbruch eines Objektes bei falscher eingabe Java Basics - Anfänger-Themen 14
S falscher return type ? Java Basics - Anfänger-Themen 4
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
B Notensystem Switch-Case Java Basics - Anfänger-Themen 31
S Switch-Case zur Berechnung der Einkommensteuer Java Basics - Anfänger-Themen 15
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
R contains ist case-intrensive Java Basics - Anfänger-Themen 7
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
S switch case fängt beim letzten case an Java Basics - Anfänger-Themen 6
F Switch Case Problem mit Regex lösen? Java Basics - Anfänger-Themen 6
W Wieso funktioniert mein Switch Case nicht ?! Java Basics - Anfänger-Themen 9
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
K In einem Case gefüllte Arraylist in einer anderen Case ausgeben Java Basics - Anfänger-Themen 2
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
F Case in While? Java Basics - Anfänger-Themen 6
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
T switch case und continue Java Basics - Anfänger-Themen 5
D switch case Code Java Basics - Anfänger-Themen 3
F Erste Schritte Switch case vs. Verschachtelte If Anweisung Java Basics - Anfänger-Themen 11
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
J swich case-default Java Basics - Anfänger-Themen 2
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
A ArrayList-iteration mit Prüfung auf instanceof durch switch case? Java Basics - Anfänger-Themen 13
P Switch Case - Fließkommazahl Java Basics - Anfänger-Themen 2
F Geht in alle Case rein, warum?? Java Basics - Anfänger-Themen 12
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
R Switch/Case frage: Java Basics - Anfänger-Themen 12
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
K Input/Output switch case - Parameterübergabe args[0] Java Basics - Anfänger-Themen 34
P Compilerfehler bei switch-case Java Basics - Anfänger-Themen 18
P orphaned case macht probs Java Basics - Anfänger-Themen 3
D Switch und Case Java Basics - Anfänger-Themen 3
X Case Integer problem Java Basics - Anfänger-Themen 12
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
E Probleme mit Case Java Basics - Anfänger-Themen 18
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Switch-Case Problem Java Basics - Anfänger-Themen 17
T switchcase innerhalb Schleife: von case-Fall aus Schleife beenden Java Basics - Anfänger-Themen 3
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
S Pattern.matches mit Ignore Case Java Basics - Anfänger-Themen 2
berti99 Switch-Case || Problem... Java Basics - Anfänger-Themen 6
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
F Upper Case Übung Java Basics - Anfänger-Themen 10
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
M Frage zu Mehrfachauswahl mit switch ... case Java Basics - Anfänger-Themen 3
R Umlaute mit Switch-Case tauschen Java Basics - Anfänger-Themen 26
J switch-case Java Basics - Anfänger-Themen 19
G Switch-Case harmoniert nicht mit Random-Zahl Java Basics - Anfänger-Themen 3
T Arrayauswahl über Case-Anweisung Java Basics - Anfänger-Themen 11
I If abfrage in switch case einbauen Java Basics - Anfänger-Themen 5
G Verschachtelte Case Fallunterscheidung Java Basics - Anfänger-Themen 7
R Erlaubte Selektoren bei Switch-Case Java Basics - Anfänger-Themen 2
Silas89 String in switch - case Java Basics - Anfänger-Themen 19
G Switch Case Java Basics - Anfänger-Themen 8
G zu blöd für switch case? Java Basics - Anfänger-Themen 6
A wie durch klicken regeln dass nächster "case" auge Java Basics - Anfänger-Themen 15
G switch-case mit Strings Java Basics - Anfänger-Themen 7
T Switch Case Java Basics - Anfänger-Themen 6
A Aus switch case an den Anfang? Java Basics - Anfänger-Themen 7
P switch-case Konstrukt auch mit case i < 6: s = 6 ? Java Basics - Anfänger-Themen 10
G switch-case mit Fehler auf return-Wert-Typ Java Basics - Anfänger-Themen 2
S Zählen mit switch case Java Basics - Anfänger-Themen 8
J Aufgabe mit Arrays, Schleifen & Switch/Case Java Basics - Anfänger-Themen 7
M switch-case und array Java Basics - Anfänger-Themen 3
O case-befehl Java Basics - Anfänger-Themen 4
C switch-case mit bedingungen? Java Basics - Anfänger-Themen 5
C Switch / Case Problem, break funktioniert nicht! Java Basics - Anfänger-Themen 3
J Switch Anweisung: Case "Wert1" bis "Wert2&quo Java Basics - Anfänger-Themen 2
D switch case must be constant expression Java Basics - Anfänger-Themen 7
G CASE-Anweisung Java Basics - Anfänger-Themen 8
G ersatz für header.h in java ? swict-case kanns nicht richtig Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben