Void Methode einem Stringparameter im syso-Befehl hinzufügen

Silvascus

Mitglied
Hallo,

Ich bräuchte eure Hilfe, ich habe folgenden Code geschrieben, doch wird mir eine Fehlermeldung namens "The operator + is undefined for the argument type(s) String, void" augegeben, wäre toll, wenn ihr mir helfen könntet:

Main:
Java:
package main;

import Prog1Tools.IOTools;

public class Main{
    public static void main(String[] args){

        Hund bello = new Hund();
        Zahlen zahl= new Zahlen();
      
        bello.name = IOTools.readLine("Wie heißt dein Hund?    ");
        bello.alter(7);
      
      
        System.out.println("Dein Hund hat " + zahl.zahl(bello.bälle())+ " Ball/Bälle gefangen!");
    }  
}

Hund:

Java:
package main;

import java.util.Random;

public class Hund {
  
        int alter =0;
        String name;

        void alter(int alter){
            if(name == null) System.out.println("Geben sie zuerst einen Namen an!");
            else{
            System.out.println("Dein Hund "+ name + " ist "+alter +" Jahre alt!");
            }
            }
        int bälle(){
            Random ball = new Random();
          
            int gefangen = ball.nextInt(19);
          
            return gefangen;
        }
    }

Zahlen:
Java:
package main;

public class Zahlen {
    void zahl(int random){
      
        switch(random){
      
        case 1: System.out.println("einen");
            break;
        case 2: System.out.println("zwei");
            break;
        case 3: System.out.println("drei");
            break;
        case 4: System.out.println("vier");
            break;
        case 5: System.out.println("fünf");
            break;
        case 6: System.out.println("sechs");
            break;
        case 7: System.out.println("sieben");
            break;
        case 8: System.out.println("acht");
            break;
        case 9: System.out.println("neun");
            break;
        case 10: System.out.println("zehn");
            break;
        case 11: System.out.println("elf");
            break;
        case 12: System.out.println("zwölf");  
            break;
      
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Deine Methode 'zahl' in der Klasse gibt nichts zurück (void) sondern printed nur etwas auf die Standardausgabe.
Du du einen Wert returnst, dann kannst du ihn auch für die Ausgabe in deinem System.out.println nutzen.

Du solltest also den Rückgabewert der Methode 'zahl' von void auf String ändern. Anstatt die Zahl auszugeben returnst du sie dann.
Anstatt System.out.println("zehn"); also return "zehn";
 
Ich bräuchte eure Hilfe, ich habe folgenden Code geschrieben, doch wird mir eine Fehlermeldung namens "The operator + is undefined for the argument type(s) String, void" augegeben, wäre toll, wenn ihr mir helfen könntet:

Bitte in Zukunft immer dazu sagen in welcher Zeile deines Codes diese Fehlermeldung gezeigt wird (sonst müssen wir extra suchen und viele haben dazu keine Lust 😉).

Die Fehlermeldung sagt eigentlich schon aus was das Problem ist: "+" kann nicht im Zusammenhang mit "void" verwendet werden.
Deine Methode "zahl" in der Klasse "Zahlen" hat keinen Rückgabewert (void). In deiner "main" Methode willst du aber einen String mit dem Rückgabewert von "zahl" verknüpfen.

EDIT: zu spät
 

Zurück
Oben