Kurs QBasic - część 3

Skoki w programach czyli GOTO, GOSUB, RETURN, oraz END

Ponieważ wiesz już co to są zmienne, przejdziemy do kolejnego zagadnienia - skoków w programie. Pierwszym poleceniem, który umożliwia skok jest GOTO x. Dzięki niemu możemy skoczyć z obecnej linii programu do linii x (z ang. "go to" - "idź do"). Aby lepiej zrozumieć polecenie przyjrzyj się poniższemu przykładowi:

10 REM Prg3.1 - Polecenie GOTO
20 CLS
30 PRINT" Program demonstuje uzycie polecenia goto"
40 GOTO 30

W linii 30 program ma za zadanie napisać na ekranie tekst, po czym w lini 40 ma skoczyć do lini 30, co powoduje ponowne napisanie tekstu. Całość powtarza się bez końca - jest to martwa pętla. Jedynym sposobem na przerwanie programu jest wyjście z kompilatora (pomocna będzie kombinacja klawiszy ALT+CTRL+DEL). Jak widać w powyższym przykładzie, nierozważne używanie polecenia GOTO x może być niebezpieczne i spowodować zacięcie się programu.

Aby lepiej zrozumieć ideologię GOTO x napisz poniższy programik:

10 REM Prg3.2 - Polecenie GOTO (2)
20 CLS
30 PRINT" Numer 1"
40 GOTO 70
50 PRINT" Numer 2"
60 END
70 PRINT" Numer 3"
80 GOTO 50

Analizując polecenia krok po kroku: w linii 30 zostaje napisany tekst: "Numer 1", następnie w linii 40 następuje skok do linii 70, w której zostaje napisany tekst: "Numer 3", następnie ponownie następuje skok, tym razem do linii 50, w której zostaje napisany tekst: "Numer 2". Program kończy się w linii 60 poleceniem END, które przy tej okazji króciutko omówię. Otóż polecenie END służy do zakończenia programu w trakcie jego trwania. Zakończenie programu może nastąpić z dwóch przyczyn: gdy cały kod programu zostanie wykonany i kompilator nie znajdzie dalszej części kodu, lub gdy kompilator znajdzie polecenie END. Na początku kursu wspominałem na temat numerowania linijek kodu. W tym miejscu widać czarno na białym jakie linie kodu powinny być poprzedzone liczbą porządkową. Są to wszystkie linie, do których odnosi się instrukcja GOTO x. Podobna zasada dotyczy zresztą następnego polecenia (w sumie dwóch poleceń): GOSUB x, oraz RETURN. Oba polecenia należy traktować jako nierozerwalną parę. Polecenie GOSUB x działa podobnie do polecenia GOTO x, z tą różnicą, że gdy nastąpi skok do linii x, komputer będzie wykonywał wszystkie polecenia tak długo, aż nie trafi na polecenie RETURN, które rozkaże powrót do linii w której umieszczone jest polecenie GOSUB x. Aby lepiej zrozumieć zawiłości działania powyższych poleceń, napiszmy sobie poniższy przykład:

10 REM Prg3.3 - Polecenie GOSUB i RETURN
20 CLS
30 GOSUB 60
40 PRINT" Koniec"
50 END
60 PRINT" Poczatek"
70 RETURN

W linii 30 skaczemy za pomocą polecenia GOSUB 60 do linii 60, po czym wykonujemy polecenie napisania na ekranie tekstu "Początek". W lini 70 pojawia się polecenie RETURN, które nakazuje programowi powrót do linii w której znajduje się polecenie GOSUB 60 i wykonywanie kolejnych poleceń znajdujących się po linii 30 - czyli napisania tekstu "Poczatek" w linii 40. Program kończy swoje działanie w linii 50 poleceniem END. Początkowo można się troszkę pogubić w tych wszystkich skokach. Nauczenie się ich jest niezbędne, jeżeli chcesz napisać bardziej złożony program.

 

Język

Polska wersja językowa    English language version

Poleć stronę

Aby polecić aktualnie oglądaną stronę kliknij:

Licznik wizyt

Liczniki

Kontakt

Wiadomości

03.12.2013

Dodano opis gry Stellar System.

16.06.2013

Dodano opis programu "System Sprzedaży", oraz poprawiono treści na stronie.

10.05.2012

Strona została całkowicie przebudowana. Zmieniono layout, poprawiono teksty, oraz dodano angielską wersję strony.