Siirry sisältöön

CoolBasic/If ... Then

Wikikirjastosta

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.
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ä.

If {ehdot} Then {komennot1} Else {komennot2}

tai:

If {ehdot} Then
    {komennot1} 
Else
    {komennot2}
EndIf

Tässä esimerkissä voit liikuttaa valkoista neliötä nuolinäppäimillä:

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()