Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Muuttujan käyttäminen silmukoissa

tgunner [19.05.2006 17:35:18]

#

Olen miettinyt tuossa, että kun yleensä näkee koodeja joissa on jokin tietty pääsilmukka, niin niissä käytetään muuttujaa poistumiseen. Kuten näin:

int i = 0;
while (i == 0) {
    tee_jotain;
    if (jotain_tapahtuu) {
        i = 1;
    }
}

Mutta miksei tuota voisi vain tehdä näin?

while (1) {
    tee_jotain;
    if (jotain_tapahtuu) {
        break;
    }
}

Tuossa säästyisi luomasta uutta muuttujaa. Mutta onko while (1)-silmukoissa jotain vaarallista tai muuten harmillista, mitä ei vain kertakaikkiaan saa tehdä?

Deewiant [19.05.2006 17:48:53]

#

En kyllä keksi mitään hyvää syytä moiseen. Ehkä i:n arvoa käytetään myöhemmin johonkin muuhun?

tgunner [19.05.2006 17:51:18]

#

Ehkäpä, mutta pääasia tässä on kuitenkin tuon silmukan pyörittäminen loputtomiin ja erkaneminen break;:llä.

ESIM. Tuossa ohjelmointiputkan SDL-manuaalissa (https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=sdl3) on käytetty "pois"-nimistä bool-muuttujaa, jonka arvo vaihdetaan todeksi kun halutaan poistua.

Blaze [19.05.2006 18:47:32]

#

No ainakin mitä itse tein VB:llä jotain peliluuppeja, niin tuon muuttujan hyöty oli se, että sen pysty laittaan todeksi jossain pääloopin ulkopuolella, kuten QueryUnload-eventissä, joka tapahtuu kun ruksia painetaan yläkulmasta. Breakia ei ois sieltäkäsin voinu tehä.

Meitsi [19.05.2006 19:00:31]

#

Tuon breakin kanssa voi tulla ongelmia, jos pääsilmukan sisällä on toinen looppi. Voi olla hankalaa debuggata jos sattuu vaikka kutsumaan breakkia väärässä kohtaa jolloin päälooppi katkeaa kokoajan.

Vastaus

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

Tietoa sivustosta