這是什麼Fortran代碼意味着:的Fortran IF語句與數字/標籤,而不是另一種說法
IF (J1-3) 20, 20, 21
21 J1 = J1 - 3
20 IF (J2-3) 22, 22, 23
23 J2 = J2 - 3
22 CONTINUE
我已經看到了老項目,我沒有任何想法,這是什麼IF與數字(標籤)的意思。
這是什麼Fortran代碼意味着:的Fortran IF語句與數字/標籤,而不是另一種說法
IF (J1-3) 20, 20, 21
21 J1 = J1 - 3
20 IF (J2-3) 22, 22, 23
23 J2 = J2 - 3
22 CONTINUE
我已經看到了老項目,我沒有任何想法,這是什麼IF與數字(標籤)的意思。
這是從FORTRAN 77.一個arithmetic if
statement從FORTRAN 77規格(重點煤礦)改編:
算術
IF
語句的形式:
IF (e) s1 , s2 , s2
其中:
e
是整數,實數或雙精度表達式
s1
,s2
和s3
各自是與算術IF
語句出現在相同程序單元中的可執行語句的語句標籤。相同的語句標籤可能在相同的算術IF
聲明中出現多次。算術
IF
語句的執行使隨後的傳送控制的表達e
的評價。 接下來執行由s1
,s2
或s3
標識的語句,因爲e
的值分別小於零,等於零或大於零。
對於你的問題的例子,從上面的最後一句,
J1-3 < 0
聲明J1-3 = 0
聲明20也將執行20將被執行J1-3 > 0
聲明21將執行編輯:一個現代化的,更可讀的方式來寫,這將是:
if (J1-3 > 0) J1 = J1 - 3
if (J2-3 > 0) J2 = J2 - 3
非常感謝。 –
沒問題。請注意,我的編輯仍然有效FORTRAN 77(當然有效的Fortran 90,95等)。它使用*邏輯if語句*。另一種類型的if語句是* block if語句*。 – Chris
小寫'if'不是標準的FORTRAN 77 :) –
它是不是在FORTRAN的早期那種奇怪 - 這是在隨後的語言版本_The only_條件語句。 –