<strong>Code</strong>-<strong>it</strong>! <strong>QBasic</strong> <strong>knjiga</strong>Page 4<strong>QBasic</strong> za apsolutne početnike 2IF-THEN-ELSE naredbeAko znate imalo engleskog, shvatili ste o čemu se radi. IF-THEN-ELSE znači AKO-ONDA-INAČE, dakle imamo posla s uvjetima.Evo jednostavnog primjera za početak. Treba nam program koji će nam rećijeliuč<strong>it</strong>an broj veći od nule.CLSINPUT "Upiši broj: ", xIF x > 0 THEN PRINT "Je."Stvarno je jednostavno. Naredbu IF (zadnji red) č<strong>it</strong>amo onako kako je napisano:AKO je x veći od nule, ONDA ispiši "Je".I sad vama čudno... pričalo se o nekom ELSEu... Pa evo vam! Prvom primjeru dodajte da napiše je li veći ili manji od nule.CLSINPUT "Upiši broj: ", xIF x > 0 THEN PRINT "Je." ELSE PRINT "Nije."Ovo č<strong>it</strong>ate kao i prvi primjer, samo mislim da bolje zvuči kad umjesto INAČE kažete A AKO NIJE:AKO je x veći od nule, ONDA ispiši "Je", A AKO NIJE (INAČE), ispiši "Nije".A sad zamisl<strong>it</strong>e da smo to sve htjeli napisati lijepo: "Broj (taj i taj) je veći od nule" (ili nije). Gledajte:CLSINPUT "Upiši broj: ", xIF x > 0 THEN PRINT "Broj"; x; "je veći od nule." ELSE PRINT "Broj"; x; "nije veći odnule."Ajme gužve u jednom redu!!! Zato je bolje pisati u više redova, a naredbe uvlač<strong>it</strong>i (TAB):CLSINPUT "Upiši broj: ", xIF x > 0 THENPRINT "Broj"; x; "je veći od nule."ELSEPRINT "Broj"; x; "nije veći od nule."END IFNapomena: Pošto je u web stranici poprilično nemoguće napisati nešto uvučeno (tipkom TAB), a uvlačenja su (bar meni) podosta važna u programiranju, koristio sam bijelu boju textada dobijete privid uvučenog. Žao mi je ako budete morali kopirati neki kod, onda ćetesvaki bijeli "TAB" morati brisati i ...Eto, sad je ljepše, jedino morate zapamt<strong>it</strong>i da, kad pišete u više redova, na kraju mora pisati END IF. Kad pišete u jednom redu, NESMIJE!!!Još jedan jednostavan primjer: password. Evo programčića koji kaže je li lozinka ispravna (u ovom primjeru, lozinka je KjuBejzik).CLSINPUT "Password? ", a$IF a$ = "KjuBejzik" THENPRINT "Password confirmed"ELSEPRINT "Error: wrong password"END IFVratimo se sad drugom primjeru. Tamo imamo grešku. Ako upišemo broj 0, program će napisati da je nula manja od nule!!! Sad namtreba naredba ELSEIF (ne ELSE IF!!!):CLSINPUT "Upiši broj: ", xIF x > 0 THENPRINT "Broj"; x; "je veći od nule."ELSEIF x < 0 THENhttp://www.code-<strong>it</strong>.net/?q=book/export/html/414.10.2008 15:08:42
<strong>Code</strong>-<strong>it</strong>! <strong>QBasic</strong> <strong>knjiga</strong>Page 5ELSEIF x < 0 THENPRINT "Broj"; x; "nije veći od nule."ELSEPRINT "Upisali ste nulu."END IFČ<strong>it</strong>amo:AKO je x veći od nule, ONDAispiši "Je"INAČE, AKO je x manji od nule (odnosno, "AKO nije veći od nule, nego je manji")ispiši "Nije".INAČEispiši "Upisali ste nulu."KRAJNapomena: broj ELSEIF naredbi je neograničen.Evo još jednog (stvarno debilnog) primjera koji postoji samo da bi se ljudi zap<strong>it</strong>ali ima li smisla nastav<strong>it</strong>i s učenjem programiranja.Uglavnom, program p<strong>it</strong>a pada li kiša i kaže je li potrebno ponjeti kišobran.CLSINPUT "Pada li kiša? ", a$IF a$ = "Da" THENPRINT "Ponesi kišobran."ELSEIF a$ = "Ne" THENPRINT "Nemoj ponijeti kišobran."ELSEPRINT "Daj, piši razgovjetnije!!!"END IFOvaj zadnji PRINT je tu jer, ako korisnik napiše "ne" (s malim n), <strong>QBasic</strong> to neće proč<strong>it</strong>ati kao "Ne", i to neće valjat.CASE naredbaPogledajte ovaj primjer. Recimo da vam jednom u nekom programu za rad s datumima zatreba dio programa koji će ispisivati hrvatskinaziv mjeseca (a poznat je redni broj):CLSINPUT "Broj mjeseca: ", xIF x = 1 THENPRINT "Siječanj"ELSEIF x = 2 THENPRINT "Veljača"ELSEIF x = 3 THENPRINT "Ožujak"ELSEIF x = 4 THENPRINT "Travanj"ELSEIF x = 5 THENPRINT "Svibanj"ELSEIF x = 6 THENPRINT "Lipanj"ELSEIF x = 7 THENPRINT "Srpanj"ELSEIF x = 8 THENPRINT "Kolovoz"ELSEIF x = 9 THENPRINT "Rujan"ELSEIF x = 10 THENPRINT "Listopad"ELSEIF x = 11 THENPRINT "Studeni"ELSEIF x = 12 THENPRINT "Prosinac"ELSEPRINT "Taj mjesec ne postoji."END IFhttp://www.code-<strong>it</strong>.net/?q=book/export/html/414.10.2008 15:08:42