Lädt...

Rückgabewerte

Schreibe eine Methode namens twice, die ein int namens n nimmt und das Doppelte dieser Zahl zurückgibt. Der Header beginnt mit int, nicht mit void: static int twice(int n). In die geschweiften Klammern schreibe return n * 2;. In Main schreibe das Ergebnis des Aufrufs: Console.WriteLine(twice(7));. Der Bildschirm sollte eine Zeile zeigen: 14. twice selbst ruft kein WriteLine auf. Es gibt nur 14 zurück. Main schreibt diese Zahl. Diese Rückgabe lehrt diese Seite. Behalte den öffentlichen Klassennamen Pine.

Gib eine Zahl an Main zurück

Auf der Parameter-Seite schrieben greet und show im Methodenkörper. Der Aufruf schickte einen Wert hinein, und die Methode schrieb auf den Bildschirm. Hier empfängt die Methode weiterhin einen Wert, aber sie sendet auch einen Wert hinaus. Das Wort return markiert diesen ausgehenden Wert. Main kann ihn speichern oder schreiben.
Öffne die Pine-Datei. Der Klassenname bleibt Pine. Diese Seite benennt den Typ nicht um. Lösche jede greet-Demo, die nur hi lena in der Methode schreibt, falls das noch alles ist, was du in Main hast. Lösche jedes übrig gebliebene ring();. Lösche jede ReadLine-Zeile. Die Datei, die du behältst, wartet nicht auf Tippen.
Außerhalb von Main, noch in den geschweiften Klammern der Klasse, sagt der Header int, weil der Wert, der zurückkommt, ein int ist. Zwischen den Klammern ist int n weiterhin ein Parameter — dieselbe Idee wie auf der letzten Seite. Der Rumpf hat eine Anweisung: return n * 2;. Das multipliziert n mit 2 und sendet das Produkt an den zurück, der twice aufgerufen hat. In twice steht auf dieser Seite kein Console.WriteLine. Speichere die Datei vor dem Start. Das vollständige erste Programm steht im nächsten Kasten.

Die Datei, die du behältst

Das ist das vollständige kleine Programm. twice rechnet. Main schreibt.

twice returns n times 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        Console.WriteLine(twice(7));
    }

    static int twice(int n)
    {
        return n * 2;
    }
}

Lies es von oben. using System; bereitet kurze Namen vor. public class Pine nennt den Typ. public static void Main() ist, wo die Laufzeit startet. Der Aufruf twice(7) sendet 7 in n. static int twice(int n) hält return n * 2;. Console.WriteLine schreibt den Wert, der zurückkam. Eine Zeile auf dem Bildschirm: 14.

Starte es mit dotnet run. Das Programm schreibt eine Zeile und stoppt. Es wartet nicht, dass du tippst. Wenn dotnet run wartet, steckt ReadLine noch in der Datei. Lösche diese Zeile und behalte Console.WriteLine(twice(7)); plus die Methode twice darüber. Der Bildschirm zeigt 14. Wenn der Bildschirm hi lena zeigt, läuft noch ein übrig gebliebener greet-Aufruf. Wenn der Bildschirm die Buchstaben twice zeigt, hat eine Schreibzeile Anführungszeichen um dieses Wort: Console.WriteLine("twice");. Du installierst das .NET SDK nicht neu für einen Bildschirm, der die falsche Zeile zeigt.

Geh einen vollständigen Lauf der Reihe nach durch. C# startet bei Main. Der Aufruf twice(7) sendet 7 in n. In twice berechnet return n * 2; den Wert 14 und gibt dieses 14 an Main zurück. Dann schreibt WriteLine die 14. twice hat nie selbst auf den Bildschirm geschrieben. Wenn du den Aufruf auf twice(3) änderst, sollte der Bildschirm 6 zeigen. Der Methodenkörper bleibt gleich; nur das Argument ändert sich, und das zurückgegebene Produkt ändert sich mit. Wenn der Bildschirm 7 statt 14 zeigt, hast du n in twice geschrieben oder das Argument in Main ohne Aufruf von twice — lege die Verdopplung auf die return-Zeile und schreibe das Ergebnis des Aufrufs.
Die wichtige Trennung ist, wer mit dem Bildschirm spricht. Auf dieser Seite spricht twice nur über return mit Main. Main spricht über WriteLine mit dem Bildschirm. Deshalb darf der Header nicht mehr void sagen: etwas muss zurückkommen, damit Main schreiben kann. Wenn du das Ergebnis zuerst in result speicherst, nutzt du dieselbe Rückgabe; du verzögerst das Schreiben nur um eine Zeile.

Schreibe den Wert, den Main empfangen hat

Du kannst den zurückgegebenen Wert auch zuerst in einem Namen in Main halten, bevor du schreibst. Ändere nur die Zahl im Aufruf, wenn du eine andere Bildschirmzeile willst. Lass return n * 2; unberührt.

store the returned value

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int result = twice(7);
        Console.WriteLine(result);
    }

    static int twice(int n)
    {
        return n * 2;
    }
}

Das ist die zweite Datei. Sie lehrt dieselbe Rückgabe mit einem gespeicherten Namen. Starte dotnet run. Das zeigt weiterhin eine Zeile: 14. Der Aufruf endet zuerst und füllt result. Dann schreibt WriteLine den Wert result. Beide Formen — den Aufruf direkt schreiben oder speichern und dann schreiben — nutzen dasselbe return aus twice. twice(0) sollte 0 schreiben. twice(10) sollte 20 schreiben. Jedes Mal schreibt Main, was twice zurückgegeben hat. Nachdem du die gespeicherte Form gesehen hast, setze die behaltene Einzeilen-Aufruf-Datei wieder ein, wenn das die Form ist, die du speichern willst: Console.WriteLine(twice(7)); in Main.
Wenn twice im Header noch void sagt, der Rumpf aber return n * 2; hat, schreibt der Build einen Fehler — void bedeutet, nichts kommt zurück, also passt ein return mit Wert nicht. Wenn der Header int sagt, der Rumpf aber kein return hat, schreibt der Build ebenfalls einen Fehler — eine int-Methode muss in dieser Anfängerform ein int zurückgeben. Wenn der Rumpf schreibt und nie zurückgibt, bist du bei der Idee der Parameter-Seite; diese Seite will die Zahl in den Händen von Main.

void versus eine typisierte Rückgabe

Lies die zwei Formen nebeneinander. Eine void-Methode führt ihren Rumpf aus und endet. Eine Methode mit typisierter Rückgabe muss mit return einen Wert zurückgeben. Wenn der Rückgabetyp nicht void ist, behandelt Main den Aufruf als diesen Wert.

📊 void body versus return

Shape What the method does What Main often does
void show(int n) writes inside the body calls show(9); and may write nothing else
int twice(int n) return n * 2; writes or stores twice(7)

Eine häufige Verwechslung ist, Console.WriteLine(n * 2); in twice zu setzen und den Header als int ohne return zu lassen. Dann beschwert sich der Build, oder du änderst den Header zurück zu void und hast keinen Wert mehr, den Main aus dem Aufruf schreiben kann. Eine andere Verwechslung ist, return; ohne Wert zu schreiben, während der Header int sagt. Behalte return n * 2;, damit der Typ des zurückgegebenen Ausdrucks zu int passt. Console.WriteLine("twice"); in Main schreibt das Wort twice; es ruft die Methode nicht auf. Behalte Console.WriteLine(twice(7)), wenn du 14 auf dem Bildschirm willst.

Eine übrig gebliebene greet-Demo, die nur hi lena in der Methode schreibt, kann in derselben Datei sitzen und den Bildschirm verwirren. Räume Main bis auf das WriteLine auf, das twice nutzt, und behalte eine Methode, die zurückgibt. Verschachtele twice nicht in den geschweiften Klammern von Main. Methoden sitzen in der Klasse, neben Main.

Du kannst static int twice(int n) schreiben, einen berechneten Wert zurückgeben und diesen Wert aus Main schreiben. Der Bildschirm zeigt die Zahl, die Main empfangen hat, nicht eine Zeile, die die Methode selbst geschrieben hat. void ist der falsche Header, wenn du einen Wert zurück brauchst. Die nächste Seite ist overloading, wo mehr als eine Methode einen Namen teilen können, wenn ihre Parameterlisten sich unterscheiden.

Der Bildschirm hält, was Main empfangen hat

Die Datei, die du behältst, schreibt 14, wenn Main das Ergebnis von twice(7) schreibt. Das Wort return steht im Methodenkörper, und return steht nicht als gedrucktes Etikett auf dem Bildschirm. Anführungszeichen um twice schreiben Buchstaben, nicht das Ergebnis des Aufrufs. twice in Main zu verschachteln ist nicht die Form, die diese Lektion baut.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
6
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt