Re: [問題] 關於continue這個指令上的問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章