Ich weiss nicht, was Du genau geändert hast. Aber in der Methode theAnswer ermittelst Du nur die Antwort und gibst diese nicht aus. Da darf daher kein System.out.println sein.
Wenn dieser Rateversuch falsch ist, dann zeig einfach einmal deinen aktuellen Code.
Die Klammer bei Zeile 18 gehört zur Klasse aussenrum?
Weil ansosnten ist die überflässig.
Und wie gesagt wurde, anstelle von System.out.println(...) müsstest du return benutzen.
println druckt ja nur Sachen auf die Konsole, das hat nichts mit dem Rückgabewert der Methode zu tun.
Also schmeiß alle println Aufrufe in der Methode raus. Und dann gib die Antwort zurück. Und die war am Anfang schon mit korrektem Rückgabetyp. Der Hinweis bezüglich
sollte Dir sagen: Derzeit gibt die Methode mit dem return input; einen int zurück. Die Methode soll einen String zurück geben. Also musst Du da beim return auch einen String angeben.
Also noch ein Gedankengang mehr: Wenn die Methode nicht "42", "bar" oder "foo" ausgeben soll: Was soll sie genau machen?
Da also - wie immer - der ganz wichtige Ratschlag: Überlege Dir in Worten genau, was die Methode machen soll. Du musst die Funktionalität im Detail verstanden haben. Und da sind Details wichtig. Es ist halt ein Unterschied zwischen:
a) "bar" ausgeben
b) "bar" zurück geben
Ja, das hast du oben schon mal geschrieben und die Antworten hast du bekommen.
Was erwartest du? Immer, wenn du System.out.println() schreibst, wird etwas ausgegeben und jetzt schau dir doch mal deinen Code an, an welchen Stellen du das tust.
Vielleicht hilf es dir, das noch einmal zu verdeutlichen. Hier dein Code, mal ordentlich eingerückt.
Java:
publicstaticinttheAnswer(int input){if(input %7==0&&%3==0){System.out.println("42");// Ausgabe auf der Konsole}elseif(input %3==0){System.out.println("bar");// Ausgabe auf der Konsole}elseif(input %7==0){System.out.println("foo");// Ausgabe auf der Konsole}else{System.out.println(input);// Ausgabe auf der Konsole}return input;// Rückgabe des Parameterwertes}
Du deklarierst eine Methode theAnswer() mit einem Rückgabewert vom Typ int: public static int theAnswer(int input).
Die Rückgabe dieses Wertes erfolgt an dieser Stelle: return input;. Es wird also der Wert des Parameters input zurück gegeben. Alleine auf diesen Rückgabewert bezogen, könnte dein Code stark verkürzt werden:
Alles dazwischen gibt abhängig vom input unterschiedliche Dinge auf der Konsole aus, ändert aber nichts am Wert von input und damit natürlich auch nichts an dem Rückgabewert.
In der main() wird der von der Methode zurückgegebene Wert noch einmal ausgegeben: System.out.println(theAnswer(10));