Instrukcja skoku GOTO
Kolejną instrukcją skoku jest GOTO. Za jej pomocą możemy skoczyć w odpowiednie miejsce w kodzie. Warunek jest jeden żeby program wiedział w które miejsc skoczyć musimy to miejsce oznaczyć etykietą. Instrukcja GOTO na pierwszy rzut oka wydaje się bardzo przydatna ale przestrzegam przed jej nadużywaniem, analiza kodu gdzie często używamy instrukcji GOTO jest mordęgą.
Zadanie
Wykonaj 10 razy pewien kod w pętli (podzielony na dwie części). Przy piątym przebiegu pętli pomiń pierwszą część kodu.
Do rozwiązania tego zadania wykorzystam pętlę FOREACH i instrukcję GOTO. Kod poniżej.
// deklaracja i inicjalizacja tabeli do które później się odwołamy w pętli int[] liczby = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // rozpoczęcie pętli FOREACH foreach(int i in liczby) { Console.WriteLine("Przebieg pętli nr: "+i); if (i == 5) { goto Finish; } // wyświetlenie kolejnych wartości z tablicy "liczby" Console.WriteLine("Pierwsza część kodu"); // etykieta Finish: i druga część kodu Finish: Console.WriteLine("Druga część kodu"); Console.WriteLine(); } // żeby zobaczyć na ekranie efekt uruchomienia naszego programu // posłużymy się funkcją ReadKey() która "czeka" // na wciśnięcie jakiegokolwiek klawisza na klawiaturze Console.ReadKey();
Wynik uruchomienia naszego programu poniżej.
Na zrzucie widać, że pętla wykonała się 10 razy. Zauważ że przy piątym wykonaniu się pętli wykonała się tylko druga część kodu. Właśnie taki efekt chcieliśmy uzyskać, że przy określonych parametrach (u nas wtedy kiedy i=5) wykona się tylko część naszego kodu.