Notensystem Switch-Case

Basics_Java

Mitglied
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class NotenUmwandler {
    static int nextInt(BufferedReader scanner) throws NumberFormatException, IOException {
        return Integer.parseInt(scanner.readLine());
    }
    
    public static void main(String[] args) throws IOException{
        BufferedReader scanner = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Welches Notensystem?");
        String hoch = "Hochschule";
        String gym = "Gymnasium";
        int ggym = Integer.parseInt(gym);
        
        System.out.println("Welche Note(z.B. 10)?");
        
        switch (ggym){
        
            case 15: System.out.println("ausgezeichnet");
            case 14: case 13:
                System.out.println("sehr gut");
            case 12: case 11: case 10:
                System.out.println("gut");
            case 9: case 8: case 7:
                System.out.println("befriedigend");       
            case 6: case 5: case 4:
                System.out.println("ausreichend");     
            case 3: case 2: case 1:
                System.out.println("nicht ausreichend");     
            default: System.out.println("Falsche Eingabe!");
          }
        
        System.out.println("Welche Note(z.B. 1.0?");
        switch(hoch)
        {
            case "1.0": case "1.3":
                    System.out.println("sehr gut");
            case "1.7": case "2.0": case "2.3":
                System.out.println("gut");
            case "2.7": case "3.0": case "3.3":
                System.out.println("befriedigend");
            case "3.7": case "4.0":
                System.out.println("ausreichend");
            case "5.0": System.out.println("nicht ausreichend");
                break;
            default:
                
        }

    }

}

Ich bekomme ein Exception Fehler.
Ich würde gern das Programm starten es soll mich nach einem Schulsystem fragen, danach soll er mich fragen was ich gerne für eine Note wählen würde je nach Schulsystem.
 
Zuletzt bearbeitet:

Kirby.exe

Top Contributor
Schick mal deine Fehlermeldung

Ich vermute es ist eine NumberFormatException ;)

Das liegt an deinem Integer.parseInt(gym); da gym = „Gymnasium“ ist und dies keinen int darstellt ;)
 

Basics_Java

Mitglied
Schick mal deine Fehlermeldung

Ich vermute es ist eine NumberFormatException ;)
Exception in thread "main" java.lang.NumberFormatException: For input string: "Gymnasium"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:658)
at java.base/java.lang.Integer.parseInt(Integer.java:776)
at NotenUmwandler.main(NotenUmwandler.java:16)
 

Kirby.exe

Top Contributor
Du musst bei Integer.parseInt immer darauf achten, dass der String eine int Darstellung enthält ansonsten kommt deine Fehlermeldung ;)

Das wäre valide:Integer.parseInt(„14“);
 

MoxxiManagarm

Top Contributor
System.out.println("Welche Note(z.B. 10)?");
Alleine das erfordert doch keine Eingabe. Die Eingabe musst du schon danach noch einfordern. Du brauchst 3 Eingaben: 1. Hochschulwahl, 2. Notenwahl für Gymnasium, 3. Notenwahl für Hochschule. Platziere diese jeweils unter dem System.out.println. Außerdem, woher weiß der Anwender, welche Notensysteme zur Verfügung stehen? Dem Auswahl solltest du ihm schon auch anzeigen
 

Basics_Java

Mitglied
Alleine das erfordert doch keine Eingabe. Die Eingabe musst du schon danach noch einfordern. Du brauchst 3 Eingaben: 1. Hochschulwahl, 2. Notenwahl für Gymnasium, 3. Notenwahl für Hochschule. Platziere diese jeweils unter dem System.out.println. Außerdem, woher weiß der Anwender, welche Notensysteme zur Verfügung stehen? Dem Auswahl solltest du ihm schon auch anzeigen
Ja, gut das wäre eine Möglichkeit, aber wie bekomme ich es hin, dass Gymnasium als Integer durch geht ?
 

mihe7

Top Contributor
Du willst zuerst einen String einlesen, dann prüfst Du, ob es sich bei der Eingabe um "Gymnasium" oder "Hochschule" handelt. Je nachdem verfährst Du eben unterschiedlich weiter.
 

Basics_Java

Mitglied
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class NotenUmwandler {
    
    public static void main(String[] args) throws IOException{
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Welches Notensystem?");
        System.out.println("1 - Gymnasium");
        System.out.println("2 - Hochschule");
        int auswahl = scanner.nextInt();
        int note = scanner.nextInt();
        String notehoch = scanner.nextLine();
        switch(auswahl) {
        case 1:
                switch (note)
                {
                    case 1: case 2: case 3:
                        System.out.println("nicht ausreichend");
                        break;
                    case 4: case 5: case 6:
                        System.out.println("ausreichend");
                        break;
                    case 7: case 8: case 9:
                        System.out.println("befriedigend");
                        break;
                    case 10: case 11: case 12:
                        System.out.println("gut");
                        break;
                    case 13: case 14:
                        System.out.println("sehr gut");
                        break;
                    case 15:
                        System.out.println("ausgezeichnet");
                        break;
            
                    case 42:
                        System.out.println("Don´t panic!");
                        break;
      
                    default:
                        System.out.println("Falsche Eingabe!");
                        break;
                    }
        
        
        case 2:
                switch(notehoch)
                {
                    case "1.0": case "1.3":
                        System.out.println("sehr gut");
                        break;
                    case "1.7": case "2.0": case "2.3":
                        System.out.println("gut");
                        break;
                    case "2.7": case "3.0": case "3.3":
                        System.out.println("befriedigend");
                        break;
                    case "3.7": case "4.0":
                        System.out.println("ausreichend");
                        break;
                    case "5.0":
                        System.out.println("nicht ausreichend");
                        break;
                    default:
                        System.out.println("Falsche Eingabe!");
                        break;
                
                }
        }
    }
}

So Gymnasium funktioniert, doch Hochschule irgendwie nicht
 
K

kneitzel

Gast
Was heißt funktioniert nicht?

Was auffällt ist, dass du beim äußeren Switch durchfällst. Da fehlt also ein Break. Und beim default muss kein break mehr sein.
 

Basics_Java

Mitglied
Was heißt funktioniert nicht?

Was auffällt ist, dass du beim äußeren Switch durchfällst. Da fehlt also ein Break. Und beim default muss kein break mehr sein.
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class NotenUmwandler {
    
    public static void main(String[] args) throws IOException{
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Welches Notensystem?");
        System.out.println("1 - Gymnasium");
        System.out.println("2 - Hochschule");
        int auswahl = scanner.nextInt();
        int note = scanner.nextInt();
        String notehoch = scanner.nextLine();
        switch(auswahl) {
        case 1:
                System.out.println("Gymnasium");
                System.out.println("Welche Note z.B. 10?");
                switch (note){
                case 1: case 2: case 3:
                    System.out.println("nicht ausreichend");
                    break;
                case 4: case 5: case 6:
                    System.out.println("ausreichend");
                    break;
                case 7: case 8: case 9:
                    System.out.println("befriedigend");
                    break;
                case 10: case 11: case 12:
                    System.out.println("gut");
                    break;
                case 13: case 14:
                    System.out.println("sehr gut");
                    break;
                case 15:
                    System.out.println("ausgezeichnet");
                    break;
                case 42:
                    System.out.println("Don´t panic!");
                    break;
                   default:
                       System.out.println("Falsche Eingabe!");
                      
                }
        
        
        case 2:
                System.out.println("Hochschule");
                System.out.println("Welche Note z.B. 1.0?");
                switch(notehoch)
                {
                case "1.0": case "1.3":
                    System.out.println("sehr gut");
                    break;
                case "1.7": case "2.0": case "2.3":
                    System.out.println("gut");
                    break;
                case "2.7": case "3.0": case "3.3":
                    System.out.println("befriedigend");
                    break;
                case "3.7": case "4.0":
                    System.out.println("ausreichend");
                    break;
                case "5.0":
                    System.out.println("nicht ausreichend");
                    break;
                default:
                    System.out.println("Falsche Eingabe!");
                    
                }
        default:
            System.out.println("Keine Eingabe!");
            
                
        }
    }
}
So sieht mein Code jetzt aus, zuerst frage nach dem System, wenn ich 1 tippe sollte er Gymnasium ausgeben und nach der
Note fragen, dasselbe bei Hochschule. Das ganze bis auf die System.print outs klappen nur bei Gymnasium, ein Beispiel:
Ich tippe 1 für Gymnasium und dann nur 12. Das ist die Ausgabe:

Gymnasium
Welche Note z.B. 10?
gut
Hochschule
Welche Note z.B. 1.0?
Falsche Eingabe!
Keine Eingabe!
 
K

kneitzel

Gast
Also ein Fehler ist, dass die break; im äußeren switch fehlen. Wenn also die Auswahl 1 ist, dann macht er erst die, dann geht es im nächsten case weiter ....
 

Basics_Java

Mitglied
Also ein Fehler ist, dass die break; im äußeren switch fehlen. Wenn also die Auswahl 1 ist, dann macht er erst die, dann geht es im nächsten case weiter ....

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class NotenUmwandler {
    
    public static void main(String[] args) throws IOException{
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("Welches Notensystem?");
        System.out.println("1 - Gymnasium");
        System.out.println("2 - Hochschule");
        int auswahl = scanner.nextInt();
        int note = 0;
        String notehoch = "";
        switch(auswahl) {
        case 1:
            
            System.out.println("Gymnasium");
            System.out.println("Welche Note z.B. 10?");
            note = scanner.nextInt();
                switch (note){
                case 1: case 2: case 3:
                    System.out.println("nicht ausreichend");
                    break;
                case 4: case 5: case 6:
                    System.out.println("ausreichend");
                    break;
                case 7: case 8: case 9:
                    System.out.println("befriedigend");
                    break;
                case 10: case 11: case 12:
                    System.out.println("gut");
                    break;
                case 13: case 14:
                    System.out.println("sehr gut");
                    break;
                case 15:
                    System.out.println("ausgezeichnet");
                    break;
                case 42:
                    System.out.println("Don´t panic!");
                    break;
                   default:
                       System.out.println("Falsche Eingabe!");
                      
                }
        
        break;
        case 2:
            System.out.println("Hochschule");
            System.out.println("Welche Note z.B. 1.0?");
            notehoch = scanner.nextLine();
                switch(notehoch)
                {
                case "1.0": case "1.3":
                    System.out.println("sehr gut");
                    break;
                case "1.7": case "2.0": case "2.3":
                    System.out.println("gut");
                    break;
                case "2.7": case "3.0": case "3.3":
                    System.out.println("befriedigend");
                    break;
                case "3.7": case "4.0":
                    System.out.println("ausreichend");
                    break;
                case "5.0":
                    System.out.println("nicht ausreichend");
                    break;
                default:
                    System.out.println("Falsche Eingabe!");
                    
                }
        default:
            System.out.println("Keine Eingabe!");
            
        break;       
        }
        scanner.close();
    }
}
Habe ich erledigt.
Ich kann nichts für die Hochschule eintippen.
 

mihe7

Top Contributor
Das liegt daran, dass nextInt() den Zeilenumbruch nicht entfernt und ein darauf folgendes nextLine() nur den Zeilenumbruch liest.
 

Basics_Java

Mitglied
Naja, einfach vor dem eigentlichen nextLine()-Aufruf einen weiteren ausführen. Edit: also unmittelbar vor dem Einlesen von notehoch
Java:
case 2:
            notehoch = scanner.nextLine();
            System.out.println("Hochschule");
            System.out.println("Welche Note z.B. 1.0?");
            notehoch = scanner.nextLine();
                switch(notehoch)

ungefähr so, denn das klappt auch nicht ^^
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 8
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
A switch statement Java Basics - Anfänger-Themen 4
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
Lion.King switch-Befehl Java Basics - Anfänger-Themen 6
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
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
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
1 Switch Case Java Basics - Anfänger-Themen 3
T Alternative für switch case Java Basics - Anfänger-Themen 1
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
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
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
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
J Parameterübergabe in switch? Java Basics - Anfänger-Themen 2
M Switch Java Basics - Anfänger-Themen 2
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
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
NoMercy BitFlags Programm (switch on/off , swap und isSet) Java Basics - Anfänger-Themen 7
S Switch-Case für eine Array-Zuordnung Java Basics - Anfänger-Themen 5
S switch und case Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
B Problem bei switch statement Java Basics - Anfänger-Themen 4
D Klassen Problem bei switch-case? Java Basics - Anfänger-Themen 2
E Input/Output Switch ausgabe anpassen bzw. anders darstellen Java Basics - Anfänger-Themen 13
A Warum funktioniert switch aber nicht if/else? Java Basics - Anfänger-Themen 23
B Wiederholen einer if/switch-case Schleife Java Basics - Anfänger-Themen 9
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
K Erste Schritte switch - Warum sind long/float/double/... nicht erlaubt? Java Basics - Anfänger-Themen 5
Ponychan95 Erste Schritte Switch fällt immer bis zum default durch Java Basics - Anfänger-Themen 4
P Bei Switch-Anweisung wird default-Anweisung angezeigt Java Basics - Anfänger-Themen 4
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
O This in switch anweisung Java Basics - Anfänger-Themen 5
V Fehlerhafte BufferedReader/switch Benutzung? Java Basics - Anfänger-Themen 2
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
R Methoden Switch wählt das Falsche Java Basics - Anfänger-Themen 17
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
D Array in switch Java Basics - Anfänger-Themen 3
A Switch Case Java Basics - Anfänger-Themen 5
Devil0s if vs. switch Java Basics - Anfänger-Themen 27
F Reset in der switch Anweisung Java Basics - Anfänger-Themen 3
R Compiler-Fehler Auf selben Array in mehreren "cases" vom "Switch" zugreifen Java Basics - Anfänger-Themen 11
R Switch Werte außerhalb verwenden Java Basics - Anfänger-Themen 2
D Eine Variable in mehreren "switch" Java Basics - Anfänger-Themen 24
M Switch mit String Java Basics - Anfänger-Themen 20
T Erste Schritte switch case Anweisung und if else Verzweigungen? Java Basics - Anfänger-Themen 6
M Variablen Switch Bedingungen Java Basics - Anfänger-Themen 12
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
Z Switch umsetzung Java Basics - Anfänger-Themen 6
lulas[]args Fehlerhafte Switch Java Basics - Anfänger-Themen 6
lulas[]args Switch Schleife - orphaned case Java Basics - Anfänger-Themen 27
W "switch" Anweisung - Rechenzeichen? Java Basics - Anfänger-Themen 5
T kleines problem mit switch case Java Basics - Anfänger-Themen 11
I Methoden Wochenkalendar switch anweisung fehlt Java Basics - Anfänger-Themen 4
C Switch Anweisung Frage Java Basics - Anfänger-Themen 8
R Switch/Case frage: Java Basics - Anfänger-Themen 12
Luk10 Frage zu Switch-Anweisung Java Basics - Anfänger-Themen 11
C Erste Schritte switch Anweisung geht nicht Java Basics - Anfänger-Themen 3
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
T Umschreiben von switch in if else und umgekehrt Java Basics - Anfänger-Themen 9
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
R 3 Datumsangaben sortieren mittels Switch Java Basics - Anfänger-Themen 9
J Switch mit if anweisung kombinieren Java Basics - Anfänger-Themen 2
D Kann man eine for-Schleife mit switch kombinieren? Java Basics - Anfänger-Themen 8
D Switch und Case Java Basics - Anfänger-Themen 3
F Ps to kW Konvertierer switch-case Problem Java Basics - Anfänger-Themen 4
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
M '-1' in switch anweisung Java Basics - Anfänger-Themen 2
T Parser mit switch "Weg" ausgeben? Java Basics - Anfänger-Themen 5
Q switch case hier möglich Java Basics - Anfänger-Themen 10
A Switch-Case Problem Java Basics - Anfänger-Themen 17
A Do While mit Switch Case Java Basics - Anfänger-Themen 2
Luk10 switch - Problem Java Basics - Anfänger-Themen 9
S char im switch Java Basics - Anfänger-Themen 16
berti99 Switch-Case || Problem... Java Basics - Anfänger-Themen 6
R Switch-Case Selektion Java Basics - Anfänger-Themen 13
O Switch-Case - Case 4 erhöhen Java Basics - Anfänger-Themen 9
P Problem mit switch-Funktion Java Basics - Anfänger-Themen 5
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
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

Ähnliche Java Themen

Neue Themen


Oben