Kurs QBasic - część 4
Instrukcje warunkowe - IF, THEN
Instrukcje warunkowe umożliwiają większą kontrolę nad programem. Dzięki nim możemy zaplanować co dany program ma zrobić gdy zostanie spełniony określony warunek. Unaoczni nam to poniższy przykład:
10 REM Prg4.1 - Instrukcje warunkowe IF,THEN (1) 20 CLS 30 INPUT " Wpisz cyfre 5:"; a 40 IF a = 5 THEN PRINT " Podales poprawna cyfre": END 50 PRINT " Podales cyfre inna niz 5"
W powyższym programie w linii 30 komputer prosi użytkownika o podanie cyfry 5. To, co użytkownik wpisze zależy tylko i wyłącznie od jego woli. Wybór użytkownika zostanie zapisany do zmiennej "a". W linii 40 za pomocą instrukcji warunkowej IF...THEN następuje sprawdzenie warunku - czy użytkownik podał prawidłową cyfrę. W zależności od sytuacji, program wyświetli odpowiedni komunikat. Jak widać, składnia instrukcji warunkowej, którą użyliśmy w przykładzie jest bardzo prosta: IF zmienna = wartość THEN polecenie. Należy nadmienić, że w miejsce znaku równości "=" można wstawić następujące znaki, oraz ich kombinacje:
- < znak mniejszości, gdy pierwszy człon jest mniejszy od drugiego;
- > znak większości, gdy pierwszy człon jest większy od drugiego;
- <= gdy pierwszy człon jest nie większy od drugiego (może być mniejszy, lub równy);
- => gdy pierwszy człon jest nie mniejszy od drugiego (może być większy, lub równy).
10 REM Prg4.2 - Instrukcje warunkowe IF,THEN (2) 20 CLS 30 INPUT " Wpisz cyfre 5:"; a 40 IF a = 5 THEN PRINT " Podales poprawna cyfre": END 50 IF a < 5 THEN PRINT " Podana cyfra jest za mala": END 60 IF a > 5 THEN PRINT " Podana cyfra jest za duza": END
Kilka linijek wcześniej wspominałem o członach. W powyższym przykładzie (w każdej z trzech instrukcji warunkowych) pierwszym członem jest zmienna a, natomiast drugim wartość 5. Warto pamiętać, iż członem nie musi koniecznie być jakaś stała wartość. Możemy jako obu członów użyć dwóch różnych zmiennych. Przedstawia to poniższy przykład:
10 REM Prg4.3 - Instrukcje warunkowe IF,THEN (3) 20 CLS 30 INPUT " Wpisz pierwsza liczbe"; a 40 INPUT " Wpisz druga liczbe"; b 50 IF a = b THEN PRINT " Obie liczby sa identyczne": END 60 IF a < b THEN PRINT " Liczba pierwsza jest mniejsza od drugiej": END 70 IF a > b THEN PRINT " Liczba druga jest mniejsza od pierwszej": END
Czasami wymagane jest spełnienie kilku warunków jednocześnie. W takiej sytuacji bardzo pomocne stają się łączniki AND ("i"), oraz OR ("lub"). Pierwszego używamy gdy oba warunki muszą zostać spełnione, aby polecenie zostało wykonane. W przypadku drugiego łącznika spełnienie jednego z dwóch wymaganych warunków spowoduje wykonanie polecenia. Prezentuje to poniższy przykład:
10 REM Prg4.4 - Instrukcje warunkowe IF,THEN (4) 20 CLS 30 INPUT " Wpisz pierwsza liczbe"; a 40 INPUT " Wpisz druga liczbe, wieksza od pierwszej"; b 50 INPUT " Wpisz trzecia liczbe, wieksza od drugiej"; c 60 IF a < b AND b < c THEN PRINT " Podales poprawne liczby": END 70 PRINT" Podane liczby nie spelniaja warunkow"
Oczywiście członów może być dużo więcej - wszystko zależy od wymagań stawianych programowi. Jak zapewne zauważyłeś, po THEN następuje polecenie, które program ma wykonać gdy zostanie spełniony warunek. Co jednak należy zrobić, gdy poleceń do zrealizowania jest więcej ? Można np: użyć polecenia GOTO, lub GOSUB. W przypadku polecenia GOTO sytuacja staje się łatwiejsza, bowiem polecenie THEN samo w sobie działa tak samo jak GOTO i co za tym idzie wystarczy jedynie wpisać numer linii, do której program na skoczyć. Prezentuje to kolejny przykład:
10 REM Prg4.5 - Instrukcje warunkowe IF,THEN (5) 20 CLS 30 INPUT " Wpisz pierwsza liczbe"; a 40 INPUT " Wpisz druga liczbe, wieksza od pierwszej"; b 50 INPUT " Wpisz trzecia liczbe, wieksza od drugiej"; c 60 IF a < b AND b < c THEN 80 70 PRINT" Podane liczby nie spelniaja warunkow": END 80 PRINT" Podane liczby spelniaja warunki"
Należy natomiast pamiętać iż polecenie THEN nie działa jak GOSUB. Aby użyć GOSUB, należy wpisać THEN GOSUB x (x - numer linii). Na tym kończę swój wykład na temat instrukcji warunkowych.