Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Ohjelman suorituksen palaaminen

Sivun loppuun

hyyppä [09.01.2006 16:09:05]

#

Miten ohjelman suorituksen saa palaamaan tiettyyn kohtaan?

rndprogy [09.01.2006 16:17:11]

#

Jos olet vaikka break:illä hypännyt loopista pois niin palautuminen tapahtuu continue:lla.

Blaze [09.01.2006 16:19:32]

#

Kirjoita toistettava osa silmukaksi (tai funktioksi). Gotoa ei tueta.

phadej [09.01.2006 16:29:21]

#

Älkää väheksykkää gotoa ;)
Esimerkiksi kun on kaksi sisäkkäistä silmukkaa ja pitäisi poistua molemmista sisäkkäisestä, niin break ei auta. Ilman gotoa joutuisi tekemään ylimääräisen muuttujan ja tarpeettoman ehtolauseeseen.

Toinen juttu, että tälläisiä tilanteita tulee harvoin.

TeeVee [09.01.2006 16:37:53]

#

Gotoa voi käyttää, mutta jos sinulla on about 10 goto-kohtaa koodissasi, se on aika spagettia. Tee jokin purkka silmukoilla ja funktioilla.

hunajavohveli [09.01.2006 16:58:33]

#

Gotoa voi kyllä käyttää juuri esim. kahdesta silmukasta poistumiseen, mutta hyvä perusperiaate on, että gotoa ei käytetä itse varsinaisen silmukan tekemiseen, tai siirtymiseen ohjelman osasta toiseen silloin, kun saman voisi tehdä selkeämmin ehtolauseella tai aliohjelmalla. Myös usemmasta silmukasta poistumisen voi tehdä ilman gotoa, mutta se tuottaa helposti gotoakin epäselvempää jälkeä.

T.M. [13.01.2006 15:32:27]

#

Itsekin olen joskus törmännyt siihen ongelmaan että goto olisi ollut huomattavasti parempi ratkaisu, koska muuten olisi pitänyt kirjoittaa turhaa ohjelmakoodia.
Onneksi PHP:ssä on "break 4;" komento, eli hyppää esim neljän silmukan sisältä ulos.

Ihmettelen miksi gotoa väheksytään... ehkä aloittelijoiden takia sitä mustamaalataan? koska aloittelijathan saattavat käyttää pelkkää gotoa kaikkeen mahdolliseen toimintaan, jolloin koodista tuleekin helvetin epäselkeää.

Meitsi [13.01.2006 16:04:34]

#

Niinhän se taitaa olla, alottelijoille se voi olla helppo ymmärtää "Looppauskomentona", mutta väärinkäytettynä aiheuttaa koodin sekavuutta.

thefox [13.01.2006 17:57:39]

#

rndprogy kirjoitti:

Jos olet vaikka break:illä hypännyt loopista pois niin palautuminen tapahtuu continue:lla.

Olet ymmärtänyt väärin. continue ei ole sallittu loopin ulkopuolella. Oikeasti continue kertoo, että sitä seuraavat lauseet halutaan jättää suorittamatta, eli se siis "hyppää takaisin loopin alkuun".

rndprogy [13.01.2006 18:39:00]

#

En ole ollut tekemisissä continuen kanssa ja näin se tietysti on. Hätäpäissäni vastasin :P


Sivun alkuun

Vastaus

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

Tietoa sivustosta