Hyppiminen paikasta toiseen Goto:lla on joidenkin ohjelmoijien mielestä erittäin epäsuotava tapa kirjoittaa koodia. Perusteeksi esitetään, että se sotkee ohjelmarakenteen, ja tekee koodista sekavaa luettavaa. Ominaisuus on CoolBasicissa mukana, koska se on tuettu kaikissa muissakin BASIC-kielissä. Lisäksi Goto voi kuitenkin osoittautua erittäin hyödylliseksi tietyissä tilanteissa. Pohjustetaan selitystä ensin esimerkin avulla:
1 Print "Ohjelma alkaa" 2 3 Goto jatko 4 5 Print "Tämä teksti ei ikinä tulostu" 6 7 jatko: 9 10 Print "Ohjelma loppui" 11 12 WaitKey |
Sinisellä kirjoitetut lihavoidut sanat liittyvät hyppyihin. Silmäile koodi läpi ja aja se. Huomaat, että riviä 5 ei ikinä suoriteta. Miksi? Koska hyppäsimme sen yli. Hyppyrakenteessa pitää aina olla kohde, tässä tapauksessa rivi 7. Kohde voi olla ennen tai jälkeen Goto-kutsun, eli missä tahansa kohtaa koodia (ei koko totuus). Voit tietysti kirjoittaa monta Goto-käskyä, jotka kaikki johtavat samaan kohteeseen. Kohdetta kutsutaan kirjanmerkiksi, ja sen perään kirjoitetaan kaksoispiste. Muuta samalla rivillä ei saa olla.
Sinulla ei saa olla kahta saman nimistä kirjanmerkkiä (paitsi jos toinen niistä on eri funktiossa). Isoilla ja pienillä kirjaimilla ei ole väliä.
Gosub on toinen tapa hyppiä ohjelman sisällä. Ero Gotoon on se, että voit palata takaisin kutsukohtaan komennolla Return. Tällaisia lohkoja kutsutaan aliohjelmiksi. Aliohjelma voi esiintyä ainoastaan pääohjelmassa, Gosub ei siis ole sallittu funktoissa. Kaikki muut Goto-säännöt pätevät. Gosub-lohkoa käytetään yleisesti "käy tuolla tekemässä jotain ja palaa sitten takaisin"-tarkoitukseen. Pelisi rakenne voisi olla vaikka seuraavanlainen:
ESIMERKKI | |
|
Älä unohda Returnia! Se palauttaa ohjelman samaan paikkaan mistä aliohjelmaa kutsuttiin, eli tässä tapauksessa takaisin pääsilmukkaan.
Älä riko seuraavia sääntöjä:
<<TAKAISIN