Java Methode schreiben die Brüche kürzt siehe Foto was bedeutet das void?
void bedeutet ja das es nichts zurückgibt oder? Also hier sind die Methode die hab ich kopiert es ist eine Hausaufgabe, wo ich die Methode kopieren und einfügen soll und ergänzen soll und unten bei System.out.println wurde auch "irgendwas" hingeschrieben also warscheinlich der Methoden Aufruf aber void bedeutet ja es gibt nichts zurück also darf man nichts in die Methode schreiben oder?
Ich würde es nämlich so machen: eine while schleife die kuckt ob der Nenner mit dem Zähler dividierter ist falls nicht dann umgekehrt kucken. Falls das nicht geht dann Zähler und Nenner geteilt durch 3, falls das nicht geht dann Zähler und Nenner geteilt durch 2. und joa dann müsste der Bruch endgültig gekürzt sein aber das void verwirrt mich! Und ich darf nicht ändern!
Mit freundlichen Grüßen
3 Antworten
void bedeutet ja das es nichts zurückgibt oder?
Ja, die Methode gibt keinen expliziten Wert aus ihrem Kontext zurück.
(...) also darf man nichts in die Methode schreiben oder?
Die Methoden dürfen Inhalt besitzen. Sie geben nur, wie gesagt, einfach keinen expliziten Wert zurück. Stattdessen könnte in ihnen eine Ausgabe stattfinden.
Beispiel:
static void sum(int numberOne, int numberTwo) {
int result = numberOne + numberTwo;
System.out.println(result);
}
ich würde es nämlich so machen:
Wieso suchst du nicht einfach den größten gemeinsamen Teiler?
Schau doch mal hier vorbei! hat mir mega geholfen immer! :) --> http://gum.co/javafuerstudenten
Das habe ich nirgendwo geschrieben.
In jeder Methode ist das Schlüsselwort return erlaubt. Nur ob dahinter noch ein Wert angegeben wird, der aus dem Kontext transportiert werden soll, bestimmt der definierte Rückgabetyp im Methodenkopf.
// allowed
void doSomething() {
return;
}
// not allowed
void doSomethingElse() {
return 1;
}
// allowed
int doSomethingOtherImportant() {
return 1;
}
return veranlasst den Programmfluss, sofort aus den Methodenkontext zu springen, sollte er diesen Befehl passieren.
Ob ein Wert zurückgegeben wird oder nicht, ist ein klarer Unterschied. Die Ausgabe des Ergebnisses ist hier nur ein Workaround, doch nicht jedes Ergebnis, welches eine Funktion berechnet, soll auf der Konsole ausgegeben werden. Daher gibt es Rückgabetypen.
In der Regel ist dies auch der saubere Weg: Eine bestimmte Methode berechnet lediglich einen Wert (tut also nur das, was ihr Name auch aussagt) und weitere Angelegenheiten (wie das Lesen von Eingaben oder die Ausgabe von Daten) werden woanders ausgeführt.
Pseudocode zur Veranschaulichung:
numberOne = readNumber()
numberTwo = readNumber()
result = getSum(numberOne, numberTwo)
print(result)
OHHHH hast recht!!!!!! den ggt hatte ich ja aus der aufgabe davor schon hingekriegt!! Ok danke ich Versuchs!!!!
https://de.wikipedia.org/wiki/Void_(Schl%C3%BCsselwort)
auch sonst empfehle ich Dir, google zu nutzen. Du machst das nicht für Dich für den Lehrer, sondern für Dich selbst. Auch Recherche ist Übungssache.
"... die kuckt", hier überlege Dir einmal, wie Du das prüfen kannst. Ich helfe gerne, doch nicht so, dass ich Deine Aufgabe mache und Dir das Erlernen wegnehme.
modulo
static String kuerzen(int zaehler, int nenner) {
int a, b, c;
a = zaehler;
b = nenner;
c = a % b;
while (c > 0) {
a = b;
b = c;
c = a % b;
}
return (zaehler / b) + "/" + (nenner / b);
}
Du kannst dann z.B. 'System.out.println(kuerzen(121,11));' schreiben und erhältst dann '11/1'.
Wenn diese Methode keinen Rückgabewert haben darf (void), dann solltest du vielleicht die Klasse 'Bruch' definieren.
warum hast du eine neue Methode gebildet? darf ich ja nicht, muss die vorgegebene Methode nutzen…
Da steht doch, dass du die Methode kuerzen schreiben sollst. Die ist ja nicht vorgegeben bzw. der Inhalt fehlt.
du hast aber "static String kürzen usw" erzeugt, und bei mir ist eben "public static void kürzen" schon vorgegeben also vor der Aufgabenstellung stand das ich das so rein kopieren soll
Stimmt, das habe ich übersehen, da es eher unüblich ist.
Dann ersetzt du das return-Statement durch System.out.println und dann kannst du es auch als void anstatt String deklarieren. Sollte keinen Fehler geben.
also bei void darf man kein return hinschreibe dafür aber System.out.println? Hmm falls das so ist dann macht des irgendwie keinen Sinn weils beides das selbe ist aber naja egal ich nehme einfach mal so hin!