2012-10-22 6 views
-9

Je suis nouveau dans C# alors s'il vous plaît ignorer ma façon de demander Je suis très confus que ma fonction de récursion est correcte, mais le code montre une erreur. S'il vous plaît aiderErreur de code de récursion dans C#?

voici mon code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     void Print100(int n) 
     { 
      if (n >= 100) 
      { 
       Console.WriteLine(); 
       return;    
      } 

      Console.WriteLine(n); 
      Print100(n + 1); 
      Console.WriteLine(n); 

} 

     } 
    } 
} 

J'ai créé une fonction pour afficher 1-100 et 100-1 entiers en utilisant récursion.

+4

SO fait des devoirs maintenant? – ChrisBint

+1

Vous ne pouvez pas créer de fonctions imbriquées en C# - déplacez 'Print100' hors de votre méthode' Main'. – Lee

+0

lol, c'est récursif – mcalex

Répondre

5

Vous essayez de déclarer une méthode dans une autre. Ce n'est pas valide en C#. Vous pourrait utiliser une fonction anonyme, mais ce serait relativement douloureux. Il suffit de déplacer la méthode Print100 (et idéalement le renommer en même temps) en dehors de Main, et appelez à partir de Main.

+0

oui vous avez raison :) maintenant je l'ai corrigé et ça marche. –

+0

Je me demande pourquoi ma question est rejetée après avoir eu votre attention et votre réponse? –

4

Vous avez une méthode dans une méthode. Extrayez la méthode Print100 en dehors de la méthode Main. Puis appelez la méthode Print100 à partir de votre fonction Main.

2

Ecrivez votre code Print100 à l'extérieur du bloc principal d'annulation et appelez-le à partir du bloc principal d'annulation. Vous avez mal placé les parties du code.