Napríklad chcem smyčka od 1 do 500 pri prírastku 2. Avšak pre každých 8 slučiek chcem preskočiť nasledujúcich 18 slučiek (urobiť to do premennej zvýšenie o 18). Ako to urobím?
Môj kód je:
event = 0
do i = 1,500,2
event = event + 1
if (event .eq. 8) then
i = i + 18
event = 0
endif
enddo
Mám však chybu: "Do-premenná v tele DO sa nesmie objaviť v kontexte premennej definície". V podstate nemôžem meniť premennú "i" v slučke. Takže ako by som mal napísať kód, aby som si to uvedomil?
Vďaka.
odpovede:
4 pre odpoveď č. 1Je zakázané upravovať index slučky. Môžete vyriešiť svoj problém niekoľkými spôsobmi. Napríklad tu je riešenie bez explicitného indexu slučiek:
i = -1
do
i=i+2
if(i > 5000) exit
if (i == 15) i=i+18
...
enddo
1 pre odpoveď č. 2
zvážte vnorenú slučku pre tento príklad, niečo ako
do k=0,15
do j=0,7
i=34*k+2*j ! 34 == 18+2*8
....
end do
end do
(pravdepodobne nemám aritmetické právo, ale vidíte nápad)