10
我有一個的Fortran77片斷,看起來像這樣:的Fortran做循環內部轉到
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
當這擊中GOTO 1301聲明,這是否跳轉到循環的下一次迭代或者它退出循環? 據我瞭解,return關鍵字什麼都不做,所以我認爲這將退出循環並繼續從標籤1301執行代碼,這是否正確?
我這個翻譯到C#,我想知道這是否是等價的:
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...
}
,或者我應該有「繼續」,而不是「迴歸」?
謝謝。要明確這一點,GOTO 1301語句實際上會繼續執行循環,直到滿足循環終止的條件爲止? – 2012-01-05 06:38:33
是的。你的GOTO 1301帶你到1301 CONTINUE,這將重複,直到循環結束。 – milancurcic 2012-01-05 06:40:53
優秀。非常感謝,這非常有幫助。 – 2012-01-05 06:42:59