Programiranje u BASIC-u/BKontrolne strukture /IF ... THEN ... ELSE

Izvor: Wikiknjige

Uvod[uredi]

IF ... THEN ... ELSE (hrv. IF - AKO, THEN - dakle, ELSE - drukčije) je kontrolna struktura u kojoj je glavna logička ispitna točka postavljena u instrukciji IF odnosno ako, po zadovoljavanju tog uslova poslije riječi THEN postavlja se naredba koja se izvršava. Alternativno, ako glavna logička ispitna točka je negativna tada se naredba iza THEN ne izvršava, i tok izvedbe programa ide na liniju iza naredbe IF ... THEN, osim u slučaju da je postavljena naredba ELSE gdje se tok programa nastavlja poslije naredbe ELSE. Unutar ELSE moguće je ugnjezditi i nova naredba za logički ispit IF ... THEN ... ELSE, itd. U nekim izvedbama BASICa, ako se koriste složenije odnosno ugnježdene naredbe IF THEN ELSE, tada je potrebno završavati svaki stupanj IF THEN ELSE sa ENDIF (hrv. kraj ako), ili sa END (hrv. kraj). U nekim slučajevima ako se koristi naredba IF poslije ELSE, tada je potrebno napisati ELSEIF. Za ove varijacije potrebno je pregledati upute za izvedbu BASICa koji se koristi.

Primjeri[uredi]

Sjedeći primjeri napisani su u QBASICu, broj linije nije potreban u QBASICU i tu je radi preglednosti i lakšeg objašnjavanja rada programa.

Prvi[uredi]

   10 CLS
   20 A$ = INKEY$
   30 IF A$ = "" THEN GOTO 20

Drugi[uredi]

   10 CLS
   20 B = INT(RND*20)+1
   30 PRINT "Igra pogađanja"
   40 PRINT "Pogodi broj između 1 i 20"
   50 INPUT A
   55 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 50
   60 IF A > B THEN PRINT "Previsoko, pokušaj opet !": GOTO 50
   70 IF A < B THEN PRINT "Prenisko, pokušaj opet !" : GOTO 50
   80 IF A = B THEN PRINT "Pogodak ! "

Treći[uredi]

   10 CLS
   20 B = INT(RND*20)+1
   30 PRINT "Igra pogađanja"
   40 PRINT "Pogodi broj između 1 i 20"
   50 INPUT A
   55 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 50
   60 IF A = B THEN PRINT "Pogodak ! " 
      ELSEIF A<B THEN PRINT "Prenisko, pokušaj opet!" : GOTO 50
      ELSE PRINT "Previsoko, pokušaj opet!": GOTO 50  
      END IF

Skraćeniji program, jer u QBASICu je moguće sa INPUT ispisati rečenicu i poslije čekati za upis

   10 CLS
   20 B = INT(RND*20)+1
   30 PRINT "Igra pogađanja"
   40 INPUT "Pogodi broj između 1 i 20", A
   50 IF A<1 OR A> 20 THEN PRINT "Greška u unosu. Upišite broj između 1 i 20" : GOTO 40
   60 IF A = B THEN PRINT "Pogodak ! " 
      ELSEIF A<B THEN PRINT "Prenisko, pokušaj opet!" : GOTO 40
      ELSE PRINT "Previsoko, pokušaj opet!" : GOTO 40
      END IF

Objašnjenje[uredi]

Prvi[uredi]

  1. Linija 10 CLS - CLS je engleska skraćenica od Clear Screen (hrv. očisti zaslon): ova komanda briše sve sa ekrana. Ovu komandu ima večina inačica jezika BASIC, za one koje ne posjeduju ovu naredbu brisanje ekrana se postiže ispisivanjem nekih kontrolnih znakova
  2. Linija 20 A$= INKEY$ - čitaj jedan karakter sa tipkovnice (INKEY$) i ubaci taj karakter u tekstovnu varijablu A$
  3. Linija 30 IF A$="" THEN GOTO 20 - ako A$ je prazno odnosno NULL znak, idi na linju 20 (GOTO 20). Ovim će računalo uvijek biti u petlji na linji 30 na 20, sve dok korisnik ne pritisne jednu tipku na tipkovnici računala

Vanjske poveznice[uredi]