Re: [問題] 關於continue這個指令上的問題

看板Fortran作者 (FireStream)時間15年前 (2009/07/10 16:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1ALlxh9Y (Fortran)
文章代碼(AID): #1ALlxh9Y (Fortran)