Java (Fehler bei Switch-case / Methode): Kann mir jemand sagen, warum und wie ich das abändern kann?

3 Antworten

Du hast Note 4 vergessen (ist aber nicht Schuld an deinem Fehler)

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker Anwendungsentwicklung

Flori493an 
Beitragsersteller
 13.01.2020, 17:52

Danke stimmt :D

1
  1. Statt System.out.println("sehr gut"); schreibst du return "sehr gut" etc.
  2. Statt public static void letter(int number) schreibst du: public static String letter(int number)

Flori493an 
Beitragsersteller
 13.01.2020, 17:49

Ohhh stimmt! Danke!!

1
gogogo  13.01.2020, 17:53
@Flori493an

Wenn du kein switch haben möchtet, kannst du auch ein Array definieren:

String noten[] = { "0", "sehr gut", "gut", ...", ungen\u00fcend" };
public static String letter(int number)
{ return noten[number]; }

Frei nach dem Motto: Mensch sei helle, nimm 'ne Tabelle.

Aber der Zugriff wirft eine Exception, wenn der index in [...] einen ungültigen Wert außerhalb des Bereiches hat.

0

Ja, du kannst 2 Dinge machen:

Du hast hier stehen

1. System.out.println(letter(number)) und
2. public static void letter(int number)

Das heißt bei 1 gibst du "etwas" aus, und dieses "etwas" wird durch deine Funktion letter() bestimmt. Was du jetzt gemacht hast ist: "Ich gebe etwas aus" und hast dann die Funktion aufgerufen, die aber garnichts zurückgibt! (Sie ist ja void). In der letter() Funktion hast du nämlich direkte Ausgaben (mit System.out.print.......).

Also 1. entweder du gibst mit der Funktion direkt die Noten mit System.out.print("Note") und packst die Funktion nicht in eine eigene Ausgabe

letter(number);

oder 2. (eleganter) statt void machst du einen String als Rückgabewert der letter() funktion und machst dann bei jedem case ein return "DeinString";

und

public static void letter(int number){
    
    public static String letter(int number){
    switch (number){
      case 1 :
        return "sehr gut";
      case 2 :
        return " gut";
      case 3 :
        return "befr";
      case 5 :
        return "ausr";
      case 6 :
        return "unge";
      default:
        return null;
    }
  }