2010-02-01 90 views
2

我正在分析fortran中的代碼並有一個簡單的問題。關於fortran在for循環中繼續聲明的問題

我想知道在下面的代碼中100和200處的「continue」語句是什麼。

是否增加i和j計數器?如果是這樣,if(.not. flg)那麼條件包含flg值,這是循環中flg的「最後一個值」j = i+1 to N

do 100 i = 1, N-1 
      flg = .false. 
      do 200 j = i+1, N 
       if("my condition") flg = .true. 
200   continue 

      if(.not. flg) then 
       ! do something here. 
      endif 
100 continue 

回答

4

AFAIK,CONTINUE in fortran does not nothing。

它僅在DO循環語義中用於方便。 這不是C類。

4

Th CONTINUE語句簡單地標記由其數字語句編號指示的循環結束 - 它不增加任何內容。它在你的代碼中肯定對flg沒有影響。有一個簡單的解釋,它的使用here

+0

.......謝謝尼爾! – memC 2010-02-01 13:23:04

2

這是舊的Fortran,它通常使用標記爲continue的語句來標記do循環。 Fortran 90和更高版本提供了「結束」語句。

0

自從2010年2月問這個問題以來,我回答了三年多了,因爲我現在只看到了問題,並發現答案會更加詳細和完整。事實上,邏輯變量flg應該在循環j = i + 1到N中具有flg的「最後值」,因爲對於i(= 1)的每個值,由標籤200指定的內部do循環應從j = i + 1到N運行,N-1,1)。條件「我的條件」必須在不使這個內部循環變得不重要的情況下發揮重要作用。