Ydin : koodirakenteet

IF


   KUVAUS

JOS TÄMÄ SELITYS ON PITKÄ JA VAIVALLOINEN, KATSO TÄMÄ.

Tämä komento tarkastaa, onko annettu ehto totta. Kaikki muut paitsi arvo 0 tulkitaan todeksi. Mikäli ehto on totta, suoritetaan THEN-avainsanan jälkeen esitetyt komennot. Muussa tapauksessa hypätään IF-rakenteen yli tai seuraavaan kohtaan (ELSEIF, ELSE). Jos kirjoitat suoritettavat komennot THEN-sanan jälkeen yhdelle riville, erota ne toisistaan kaksoispisteellä.

If-lause voidaan suomentaa suoraan JOS-lauseeksi. Eli JOS {jotain} NIIN {TEE_JOTAIN}

Tässä on yksinkertainen IF-lause:
IF 1+1=2 THEN PRINT "Oikein"

Mutta entä jos meidän pitäisi tulostaa vastaus, myös silloin, kun lasku on väärin? Se menisi seuraavasti:
IF 1+1=2 THEN PRINT "Oikein" ELSE PRINT "Väärin"

Voimme myös suorittaa useita tehtäviä erottamalla ne toisistaan kaksoispisteellä:
IF 1+1=2 THEN PRINT "Oikein": PRINT "Hyvä!" ELSE PRINT "Väärin"

Jos ehto on totta (1+1=2), tulostetaan kaksi viestiä. Tosin tämä on aika sekavan näköinen rivi. Se voidaan jakaa myös osiin:

IF 1+1=2 THEN
   PRINT "Oikein"
   PRINT "Hyvä!"
ELSE
   PRINT "Väärin"
   PRINT "Yritä uudestaan"
ENDIF

Huomaa, että tällä tavalla esitettynä loppuun pitää pistää ENDIF, joka kertoo CoolBasicille, että rakenne loppuu tuossa kohtaa. Se toimii myös kohtana, johon CoolBasic hyppää, jos ehto on epätosi ja ELSE-lohko puuttuu:

IF 1+1=2 THEN
   PRINT "Oikein"
   PRINT "Hyvä!"
ENDIF
PRINT "Tämä ei kuulu ehtoon, ja näkyy, vaikka ehto onkin epätosi."

If-lauseeseen voidaan liittää myös toisia ehtoja, jos ensimmäinen ehto olikin epätosi. Tämä tapahtuu ElseIF-lausekkeella. Lisätietoja kohdasta "Toinen selitys" (linkki alapuolella).

Tulet törmäämään IF-rakenteeseen kaikkialla, mihin katsot. Sinun ei tarvitse sisäistää koko asiaa kerralla, vaan opit kaiken varmasti ajan myötä.

   KÄYTTÖ
IF {ehdot} THEN {komennot1} ELSE {komennot2}

   TAI

IF {ehdot} THEN
    {komennot1}
ELSE
    {komennot2}
ENDIF

Katso myös: TOINEN SELITYS

   ESIMERKKI
AddText "Use arrows to move..."

x=200:y=150

Repeat

    'update controls
    If LeftKey() Then x=x-1
    If RightKey() Then x=x+1
    If UpKey() Then y=y-1
    If DownKey() Then y=y+1

    'draw "player"
    Box x,y,10,10

    DrawScreen

Until EscapeKey()

<<TAKAISIN