Powrócimy znowu do języka C prezentując całkowicie już archaiczną instrukcję skoku, która była wykorzystywana w czasach nałogowego używania języka FORTRAN. "break" i "continue" przyszły później, najpierw było "goto". Tak się składa, że C również jest zaopatrzony w to słowo kluczowe do dnia dzisiejszego. Od razu napiszę, nie przerzucajcie się na to! To już jest mocno przestarzała instrukcja od co najmniej 20 lat. Tak więc potraktujcie ten artykuł jak zapoznanie się z częścią historii programowania w latach .60 i .70.

GOTO TO INSTRUKCJA SKOKU

Nie wiem jak prezentuje się "goto" w językach FORTRAN, COBOL i w innych dużo starszych od samego C. W każdym razie, zasada jest taka sama i niezmienna. Instrukcja ta powoduje "przeniesienie się" do innego miejsca w kodzie tam, gdzie znajduje się postawiona wcześniej "etykieta". Możecie to potraktować jak alternatywa pętli. Zwykle taką instrukcję osadzało się w instrukcji warunkowej, aby wykonywała te same ciągi instrukcji do pewnego pożądanego momentu. W języku C jest ona poprzedzona dwukropkiem, a przykładowy kod źródłowy wygląda następująco:

#include <stdio.h>

int main(void)
{
	int i = 0;
	
	increment:			// etykieta "goto"
	++i;
	
	printf("I = %d\n", i);
	
	if(i < 10)
	{
		goto increment;
	}
	
	getchar();
	
	return 0;
}

Powyżej widzimy kod źródłowy wraz z funkcją "main" wykorzystującą instrukcję "goto". Idąc od samej góry mamy przydzielenie pamięci dla zmiennej "i" i inicjalizację wartością równą zero. Następnie trafiamy na tę etykietę o której wspomniałem. Z posiadanych przeze mnie informacji wynika, że C wspierał dodatkowo nazwy etykiet dla "goto" co czyniło go jeszcze chętniej wybieranym, ponoć starsze języki miały tylko numerki (przynajmniej pierwsze wersje). Następnie mamy preinkrementację licznika, wypisywanie aktualnej wartości, a potem trafiamy na instrukcję warunkową, która decyduje o tym, czy przejść do powyższej etykiety, czy nie. Tutaj mamy do czynienia z dokładnym zachowaniem pętli "while". Dopóki wartość "i" nie jest większa bądź równa 10, instrukcja skoku będzie powodować "przenoszenie się" do powyższej etykiety i ponowne wykonanie wszystkich instrukcji.

goto

Instrukcja skoku "goto" była wykorzystywana w latach .60 i .70 jako starszy odpowiednik dzisiejszych instrukcji "break" i "continue".


Oto fragment historii przestarzałej instrukcji skoku. Możecie sobie skompilować powyższy program i zobaczyć jak to dokładnie, ale zaklinam Was, nie korzystajcie z tego regularnie! Dzisiaj macie wygodniejsze sposoby do kontrolowania przebiegu wykonywania instrukcji. DUŻO WYGODNIEJSZE.