作者youlieme (FireStream)
看板Fortran
标题Re: [问题] 关於continue这个指令上的问题
时间Fri Jul 10 16:42:18 2009
※ 引述《fdps (Try It)》之铭言:
: 想请教各位
: 在彭老师的书中提到
: continue这个指令没有实际的用途,经常拿来做结束回圈
: 可是我还是不太懂它到底是在做什麽
: 因为最近看到的程式中有一部份连续用了几次continue的指令
: 让我搞不懂他执行的顺序到底是如何?
: 附上部份的程式码给各位看看
: =====================================================================
: do 1000 i=2,ii-1
: do 1000 j=2,ij-1
: temp(i,j)=e(i,j)+0.125*(e(i+1,j)+e(i,j-1)+e(i,j+1) &
: +e(i-1,j)-4*e(i,j))+0.0625*(e(i+1,j+1)+e(i-1,j+1) &
: +e(i-1,j-1)+e(i+1,j-1)-4*e(i,j))
: 1000 continue
: do 2000 i=1,ii
: temp(i,1)=e(i,1)
: temp(i,ij)=e(i,ij)
: 2000 continue
: do 3000 i=1,ij
: temp(1,i)=e(1,i)
: temp(ii,i)=e(ii,i)
: 3000 continue
: do 4000 i=1,ii
: do 4000 j=1,ij
: e(i,j)=temp(i,j)
: 4000 continue
: ======================================================================
: 因为无法找到原作者,无法问到他这样写的目的为何?
: 所以想请教板上的各位,有没有人看得懂的可以解释给我听
: 另外如果我想改写不使用continue这个指令的话,
: 可以改用end do来结束do loop是吗?
: ps:怕我自己在问题上描述的不清楚,如果各位看不懂的话可以再提醒我
: 我再来说明,不好意思。
: 先谢谢各位了!
do 加行号表示此do loop做到该行号
第一段相当於两层do loop 跟下面是一样意思
do ...
do ...
xxx=yyy...
enddo
enddo
不加continue也可以做 但行号要加在
temp(i,j)=....这行前面 表示做到这行为止
那个continue代表继续执行而已 这样做程式比较好看懂
要改用enddo结束的话把行号去掉 或是在enddo前加行号就可以了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.28.50