<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2014-12-05 16:23 GMT+00:00 Walter Valenti <span dir="ltr"><<a href="mailto:waltervalenti@yahoo.it" target="_blank">waltervalenti@yahoo.it</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div id=":2gl" class="" style="overflow:hidden">Ai tempi dell'università, il "goto" ci era stato caldamente consigliato<br>
di non usarlo.<br></div></blockquote></div><br></div><div class="gmail_extra">Classico effetto "mi hanno detto che non va bene". In particolare tutto nacque dal paper di Dijkstra.<br></div><div class="gmail_extra">Per inciso, Dijkstra stesso si e' espresso in modo piu' moderato sullo stesso punto in seguito.<br></div><div class="gmail_extra">Il fatto e' che quel paper viene sempre citato, non e' stato in generale letto o capito da chi lo cita. <br>E ovviamente tutte le condizioni al contorno non vengono *minimamente* tenute in considerazione.<br><br></div><div class="gmail_extra">Come appunto dicevo, nella pratica si usa. Le alternative sono peggiori. Specie perche' il goto di C ha relativamente poco in comune<br><br>Il punto e' che in C non hai le eccezioni. Il che vuole dire che il classico pattern<br><br></div><div class="gmail_extra">res1_acq<br></div><div class="gmail_extra">res2_acq<br></div><div class="gmail_extra">res3_acq<br><br></div><div class="gmail_extra">do_something<br>do_something<br>do_something<br><br></div><div class="gmail_extra">clean_res1<br></div><div class="gmail_extra">clean_res2<br></div><div class="gmail_extra">clean_res3<br><br></div><div class="gmail_extra">diventa piuttosto tricky quando ci devi appunto ficcare in mezzo il fatto che ogni operazione dopo res1_acq deve pulire res1, ogni operazione dopo res2_acq deve pulire res2 (e per quanto detto prima, pure res1) e cosi' via.<br></div><div class="gmail_extra">La struttura usando goto risulta *parecchio* semplice e leggibile (e si puo' anche sfruttare l'effetto a cascata).<br><br>Appunto, come diceva Roberto, e' una pratica talmente diffusa e ovvia che e' veramente strambo parlarne. Basta leggere un po' di codice in giro (e si parla di progetti piuttosto di peso, non roba scritta da principianti). <br></div><div class="gmail_extra"><br><br><br></div><div class="gmail_extra">
> Della serie: "esiste, ma guai a voi se lo usate".<br clear="all"><br></div><div class="gmail_extra">Tenendo conto che la maggior parte delle persone che fanno il primo corso di programmazione sono in difficolta' pure con il while, capisco la posizione.<br></div><div class="gmail_extra">E anche tenendo conto che i programmi che si fanno in questi contesti sono sufficientemente semplici, specialmente allocano molte poche risorse... probabilmente files e memoria e fine della fiera.<br></div><div class="gmail_extra">Dopo di che, sfortunatamente, questo dogma resta, evidentemente senza capirne il fondamento. Peccato che di tutte le cose piu' o meno utili insegnate in universita' questo sia indelebile... mentre tanta altra roba viene persa.<br><br>Credo che il motivo sia che non si e' dovuto lavorare piu' di tanto in C... puo' essere?<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>