2017-06-09 4 views
-4

Hey Leute, wenn ich diesen kleinen Code ausführen die Konsole nichts angezeigt Im Anfänger in C#, aber mein Code scheint richtig :(Nichts erscheint bei der Ausführung

class Program 
{ 
    static int Factorial(int n) 
    { 
     if (n==0) 
     { 
      return 1; //base case 
     } 
     else 
     { 
      return n * Factorial(n - 1); //recursive case 
     } 
    } 

    static void Main(string[] args) 
    { 

     Factorial(5); 
    } 
} 
+6

Es nichts angezeigt, weil Sie nicht anrufen 'Console.WriteLine' überall – Adrian

+0

' Console.Write (Factorial (5)); ' –

+0

Sie don Schreib nichts auf die Konsole. Ich kann in Ihrem Code keine 'Console.WriteLine()' sehen. Was hast du erwartet, auf der Konsole zu erscheinen? –

Antwort

0

Das Problem ist, dass Sie nicht zu fragen Ihr Programm, um etwas zu schreiben Das Programm soll nichts selbst schreiben, außer wenn Sie es fragen.Um eine Information anzuzeigen, müssen Sie Console.WriteLine() oder eine andere Funktion verwenden, die Informationen in Ihren Standard-Ausgabestrom schreiben kann .

Sie scheinen den Zweck dermissverstehenAussage. Das Ziel von return ist nur, der Funktion zu sagen, welchen Wert sie an die Funktion zurückgeben soll, die sie aufgerufen hat. Die aufrufende Funktion kann diesen Wert dann speichern und für weitere Zwecke behandeln, z. B. das Drucken wie gewünscht.

static void Main(string[] args) 
{ 
    int factorialValue = Factorial(5); // factorialValue contains 
             // the returned value of Factorial(5) 

    Console.WriteLine(factorialValue); 
} 
0

Weil Sie nichts an die Konsole schreiben haben, wenn Sie etwas in der Konsole angezeigt werden soll, dass auf der Konsole zu schreiben haben für Sie die WriteLine() Methode der Console-Klasse verwenden können. Bei einer überladenen Methode können Sie die möglichen Überladungsoptionen here with MSDN überprüfen. So sind die Änderungen im Code wäre wie folgt aus:

static void Main(string[] args) 
{ 
    int inputNum = 5; 
    Console.WriteLine("Factorial of {0} is {1}",inputNum,Factorial(inputNum)); 
} 
+0

Return schreibt nicht auf die Konsole ?? Wenn nicht, was macht die Rückgabe genau? –

+0

@BelhassenAjmi: Die Rückgabe wird einige Werte übergeben (von Typ im Rückgabetyp der Methode angegeben) von der aufgerufenen Methode auf die aufrufende Methode, es wird nichts mit der Konsole tun. –

Verwandte Themen