Wie die goto-Anweisung funktioniert in diesem Beispiel?

Studiere ich dieses code-Beispiel:

class Program
{
    static void Main(string[] args)
    {
        int x = 10;
        int y = 10;

        int generate=0;

        string [,] myArrayTable = new string[x, y];

        Console.WriteLine("Enter a seek number: ");
        string cautat = Console.ReadLine();

        for (int i = 0; i < x; i++)
        {
            for(int j = 0;j < y; j++)
            {
                myArrayTable[i, j] = (generate++).ToString();
            }
        }

        for(int i=0;i<x;i++)
        {
            for(int j=0;j<y;j++)
            {
                if(cautat.Equals(myArrayTable[i,j]))
                {
                    goto Found; 
                }
            }
        }

        goto NotFound;

        Found: 
          Console.WriteLine("Numarul a fost gasit");

        NotFound:
         Console.WriteLine("Numarul nu a fost gasit !");

        Console.ReadKey();
    }
}

Ich verstehe nicht, warum die "Nicht Gefunden" - Anweisung aufgerufen wurde und die zugehörige Meldung drucken auf der Konsole, wenn ich geben Sie einen versuchen Wert wie 10 verwendet werden, in diesem Fall " goto: Gefunden-Anweisung ausgeführt, so springen: NotFound-Anweisung wird nie aufgerufen werden, aber immer noch seine entsprechende Meldung wird ausgegeben auf der Konsole, ich verstehe nicht, wie da in diesem Fall das Programm nie springt, um dieses "NotFound" - label.

Bitte, wenn Sie jetzt geben Sie mir eine hand über diese...

Dank

  • Gutes Beispiel goto Missbrauch
  • Sie wirklich umstrukturieren sollte, diese nicht zu benutzen, springen sowieso. Es ist nicht als gute Praxis in der Regel so erhalten Sie eine Menge von Kopf-schütteln auf code-review, und es neigt dazu, wartbaren. Um ehrlich zu sein es ist eine unverwechselbare wiff code-Geruch ausgeht, aus diesem.
InformationsquelleAutor Mircea | 2010-08-31
Schreibe einen Kommentar