Ydin : koodirakenteet

SELECT


   KUVAUS

Toivottavasti tunnet jo IF-lauseen, koska tämä on vähän sama. Select-rakenne vastaa sarjaa ElseIf-lausekkeita. Esitystapa on vain hieman erilainen, ehkäpä mukavampi.

Select-rakenteella voidaan tarkastaa useita ehtoja. Se vertaa sille annettuun arvoon muita esiteltyjä arvoja. Komento on ihanteellinen, kun katsotaan minkälaisia arvoja muuttujassa on. Rakenne menee näin:

  • 1) SELECT muuttuja
  • 2) CASE arvo
  • 3) komento
  • 4) [CASE arvo]
  • 5) [komento]
  • 6) [DEFAULT]
  • 7) [komento]
  • 8) END SELECT

    Hakasulkeella olevat kohdat ovat valinnaisia. Kuulostaako hämmentävältä? Otetaan esimerkki:

    TARKASTELE muuttujaa
        ONKO 1
            TEE JOTAIN...
        ONKO 2
            TEE JOTAIN
    LOPETA TARKASTELU

    Oikeastaan se tekee siis saman, kuin sarja IF- tai ELSEIF-käskyjä. CoolBasicin kielellä tämä olisi:

    SELECT muuttuja
        CASE 1
            PRINT "yksi"
        CASE 2
            PRINT "kaksi"
    END SELECT

    Jos mikään ehdoista ei täsmää, voit haluta ottaa senkin huomioon. DEFAULT-käsky vastaa IF-rakenteen ELSE-käskyä.

    SELECT muuttuja
        CASE 1
            PRINT "yksi"
        CASE 2
            PRINT "kaksi"
        DEFAULT
            PRINT "joku muu"
    END SELECT

    Voit myös yhdistellä ehtoja samoin kuin IF-rakenteessa OR-avainsanan avulla:

    SELECT muuttuja
        CASE 1
            PRINT "yksi"
        CASE 2, 3
            PRINT "kaksi tai kolme"
        DEFAULT
            PRINT "joku muu"
    END SELECT

  •    KÄYTTÖ
    SELECT vertailuarvo
        CASE lista
            'komentoja...
    END SELECT

    Katso myös: TOINEN SELITYS

       ESIMERKKI
    'A TEXT ADVENTURE
    '========================================

    beginning:
    ClearText
    ClearKeys
    CloseInput

    AddText "What would you like to do?"
    AddText ""
    AddText "1. Go out"
    AddText "2. Go to fishing"
    AddText "3. Eat an apple"
    AddText ""

    Repeat

        c=Input("?")
        
        DrawScreen
        
    Until KeyHit(cbkeyreturn)

    Select c
        Case 1
            GoTo outside
        Case 2
            GoTo fishing
        Case 3
            GoTo eat
        Default
            AddText "Invalid choise"
            DrawScreen
            Wait 2000
            GoTo beginning
    End Select
            
    '---------------------------------------

    outside:
    ClearText
    ClearKeys
    CloseInput

    AddText "OK, you're on your yard. What to do now?"
    AddText ""
    AddText "1. Go back inside"
    AddText "2. Go to fishing"
    AddText ""

    Repeat

        c=Input("?")
        
        DrawScreen
        
    Until KeyHit(cbkeyreturn)

    Select c
        Case 1
            GoTo beginning
        Case 2
            GoTo fishing
        Default
            AddText "Invalid choice"
            DrawScreen
            Wait 2000
            GoTo outside
    End Select

    '---------------------------------------

    fishing:
    ClearText
    ClearKeys
    CloseInput

    AddText "You noticed you are quite a good angler."
    AddText "You finished this game, congrats!"

    DrawScreen
    Wait 10000
    End

    '---------------------------------------

    eat:
    ClearText
    ClearKeys
    CloseInput

    AddText "Yamm.. no need of Doctor for a while."

    DrawScreen
    Wait 3000

    GoTo beginning

    <<TAKAISIN