حلقه Do در فرترن
این حلقه برای تکرار بخشی از برنامه است. چون استفاده از حلقه GOTO در برنامه نویسی پیشرفته بسیار بد است (گفته می شود که امکان اشتباه این دستور بسیار زیاد است). در هر حال جالب نیست که در هنگام اجرای برنامه به بخش دیگری پرش کرد، حداقل اینکار خوانایی برنامه را بسیار کاهش خواهد داد.
ساختار دستوری استفاده از حلقه DO به شکل زیر است:
label: DO counter=start, limit, step
Sequence of commands to be looped through
END DO label
برای پیاده سازی حلقه های دیگر مثل حلقه for و while در زبان C می توان از دستورات زیر استفاده کرد.
دستور EXIT برای خروج از اجرای حلقه و دستور CYCLE برای تکرار حلقه از ابتدا می باشد. برای استفاده از این دستورات باید برای حلقه ها برچسب (label) در نظر گرفت این کار را با دقت بسیار زیاد انجام دهید زیرا اینکار نیز مانند استفاده از دستور GOTO است! ساختار این دستورات به شکل زیر است:
EXIT [name of loop]
CYCLE [name of loop]
پیشنهاد می کنم تا جای ممکن از این دستورات استفاده نکنید، چون شما می توانید بجای استفاده از این دستورات با تغییراتی در کد برنامه را به شکل دیگری بنویسید. به مثال زیر توجه کنید که برای روشنتر شدن روش استفاده از این دستورات بیان شده است. در این مثال داده های موجود در یک آرایه بترتیب جذر گرفته و معکوس می گردد. مشخص است که اعداد نباید صفر یا منفی باشند.
REAL:: array(5)
Outer: DO
READ(*,*) array
Inner: DO k=1, 5
IF (array(k)==0) CYCLE inner
IF (array(k)<0) EXIT
Array(k)=1/SQRT(array(k))
END DO inner
WRITE(*,*) array
END DO outer
در برنامه بالا یک حلقه بینهایت وجود دارد (حلقه DO بدون محدودیت). برای خروج از چنین حلقه هایی از دستور EXITاستفاده می گردد.
ساختار حلقه DO در فرترن 77 بشکل زیر است:
DO label, counter=start, limit, step
The sequence of commands to be looped through
label CONTINUE