Ho un frammento di Fortran77 che assomiglia a questo:Fortran fare ciclo con goto interna
DO 1301 N=NMLK-2,2,-1
Some code...
IF(NB1(N).EQ.50) GOTO 1300
Some code...
IF(BS(N).EQ.0.0) GOTO 1301
some code...
GOTO 1301
1300 NW(M)=NB1(N)
Some code...
1301 CONTINUE
Quando questo colpisce l'istruzione GOTO 1301, fa questo salto alla prossima iterazione del ciclo o lo fa uscire dal ciclo ? Per quanto ne so, la parola chiave return non fa nulla, quindi presumo che questo termini solo per uscire dal ciclo e continuare l'esecuzione del codice dall'etichetta 1301, è corretto?
sto traducendo questo per C# e mi chiedo se questo è equivalente:
for (N = NMLK; N >= 2; N--)
{
Some code...
if (NB1[N] == 50)
goto l1300;
Some code...
if (BS[N] == 0)
return;
Some code...
return;
l1300:
NW[M] = NB1[N];
Some code...
}
o se avrei dovuto "continuare" invece di "ritorno"?
Grazie. Giusto per essere assolutamente chiaro su questo, le istruzioni GOTO 1301 continueranno effettivamente l'esecuzione del ciclo fino a quando la condizione per la fine del ciclo è soddisfatta? –
Sì. GOTO 1301 porta a 1301 CONTINUE, che verrà reiterato fino alla fine del ciclo. – milancurcic
Eccellente. Grazie mille, è stato molto utile. –