Press "Enter" to skip to content

GOTO home

Jest taka instrukcja w programowaniu (głównie strukturalnym- bo w programowaniu liniowym nie da się bez niej obejść), która jest bardziej znienawidzona niż php, java, sharepoint i windows millenium razem wzięte.

Mówię o GOTO. Czyli skok do labelki, rodem z basica czy asma.

Podobno bywa użyteczny w sytuacjach zbliżonych do

for (...) {
    for (...) {
        ...
        if (cośtam)
            goto koniec;
    }
}

koniec:
//jakiś kod

Acz ma jeszcze jedno zastosowanie.

W c# nie ma tak, że jak jedna sekcja case w switchu się skończy, to można przejść do następnej. Musimy na koniec dać albo return, albo break, albo throw, albo… goto case;P
I to jest chyba jedyny przypadek, kiedy cię nie zjedzą za użycie goto. Weźmy taki przykład:

switch (str)
switch (str)
            {
                case "cos":
                  Console.WriteLine("cos napisano");
                    break;
                case "byle co":
                    Console.WriteLine("byle co napisano");
                    break;
                case "cos innego":
              		Console.WriteLine("cos innego napisano");
                    goto case "cos";
                default:
                    Console.WriteLine("Za cholere nie wiem co napisano");
                    break;
            }

Tylko czy ktoś tego rzeczywiście użył?