Non sei (al momento) in grado di comprendere perché... nessuno lo spiega mai, limitandosi tutti ad affermare che... "è roba preistorica". Fino agli anni '70 (circa) non era stata inventata la programmazione strutturata, ossia quella metodologia di programmazione che raccomanda caldamente di tradurre gli algoritmi in codice utilizzando le strutture fondamentali della programmazione: sequenza, selezione, iterazione. Il risultato era che i sorgenti dei programmi, pieni di istruzioni di salto da una parte all'altra del codice, diventavano illeggibili e difficili da mantenere; si parlava infatti di "programmi-spaghetti". La programmazione strutturata, nei linguaggi che lo permettevano (non tutti !) portò a notevoli miglioramenti nella leggibilità e riusabilità del codice e rese inutili le istruzioni di salto (es. GoTo). Se il GoTo avesse mantenuto una sua utilità lo si userebbe anche oggi indipendentemente dalla sua età.
![]()
Ciao, vedo che ti hanno già dato una spiegazione sul "perché" non usare il GoTo, ma, senza fare polemica (è solo un consiglio), quando si hanno dubbi o non si comprendono determinate cose, in primis è il caso di chiedere a colui che sa tutto (o quasi)..Google (o altri motori), con una semplice ricerca come questa: http://lmgtfy.com/?q=perch%C3%A8+non+usare+goto al secondo risultato già avevi tutte le spiegazioni.
Detto questo, l'escamotage che ti ha suggerito @eziogsv va più che bene, ma sappi che spesso ci possono essere soluzioni più lineari e pulite, per questo ti avevo detto che bisognerebbe vedere tutto il codice all'interno della sub.
![]()
Jupynet
Io la trovo invece pessima. Lo scopo della programmazione strutturata non è evitare il GoTo, bensì rendere il codice più leggibile e più manutenibile. L'introduzione di un falso ciclo va ivece nella direzione opposta. Questo è un esempio di come spesso si confonda il fine con il mezzo.