Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: QB: IF - Järkevämpi tapa?

Sami [08.03.2003 21:35:35]

#

Yhdessä pelissäni on tämän kaltainen IF-lause:

IF UCASE$(INKEY$) <> "K" AND juttu1 >= 2 AND juttu1 <= 100 AND juttu2 >= 0 AND juttu2 <= 50 AND juttu3 >= 1 AND juttu3 <= 1000 AND juttu4 >= 1 AND juttu4 <= 100 AND juttu5 >= 1 AND juttu5 <= 2 THEN EXIT DO

Tuolla tarkastan onko kaikki jutut oikean suuruisia, mutta tuon mittainen If-lause on aika kömpelön näköinen, joten tietääkö kukaan järkevämpää tapaa tuon hoitamiseen. Kieli on QB (jonka kaikki varmaankin jo hoksasivat).

trinit [08.03.2003 21:56:35]

#

Ei nyt kovin äkkiä tule mieleen parempaa tapaa tarkistaa viiden eri muuttujan arvoa, mutta sisennykset voisivat helpottaa edes lukemista:

IF UCASE$(INKEY$) <> "K" THEN
    IF juttu1 >= 2 AND juttu1 <= 1000 THEN
        IF juttu2 >= 0 AND juttu2 <= 50 THEN
            IF juttu3 >=1 AND juttu3 <= 1000 THEN
                IF juttu4 >= 1 AND juttu4 <= 100 THEN
                    IF juttu5 >= 1 AND juttu5 <= 2 then
                         EXIT DO
                    END IF
                END IF
            END IF
        END IF
    END IF
END IF

Sami [08.03.2003 22:01:57]

#

Vaikuttaa ainakin järkevämmältä, ei vielä 5 peräkkäistä niin kauhealta näytä, mutta jos/kun niitä tulee vielä lisää (esim. 10, 15 tai 20)

Antti Laaksonen [09.03.2003 00:17:53]

#

Ei tuollaista lausetta pelkällään oikein tiiviimmäksi saa. Pari merkkiä lähtee pois, kun vertailuoperaattoreista poistetaan =-merkki ja raja on yhtä pienempi tai suurempi.

Kenties se kohta pelistä pitäisi toteuttaa kokonaan toisella tavalla, jos sen haluaa kauniimmaksi. Mitä tuo kyseinen ehto tekee pelissäsi?

Sami [09.03.2003 15:19:41]

#

Peli pyytää asettamaan joitain asetuksia (matopeliin) ja tarkastaa, onko kaikki arvot sopivia. (esim. pituus ei ole negatiivinen, nopeus ei ole liian suuri tms.)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta