作者BanPeeBan (踢屁屁)
看板Fortran
標題[問題] 沒有endif的版本
時間Thu May 2 09:29:35 2019
最近看到一個程式 感覺是很舊的版本了
用了不少DIMENSION EQUIVALANCE 甚至是
DO 3 I=1,10
3 I = I + 1
這種沒有enddo的形式
其中裡面的if函數也找不到endif
其中裡面的if函數也找不到endif
其中裡面的if函數也找不到endif
範例如下
READ (*,*) CODE_NO
IF (CODE_NO .GE. 50) THEN KK=999
DO 3 I=1,10
3 I = I + 1
範例中 if條件成立時
程式是僅多執行KK=999(與IF同行的statement)
抑或是連下方的DO-loop也算在IF裡面?
-----
Sent from JPTT on my Asus ASUS_Z012DA.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.206.42
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Fortran/M.1556760577.A.9CE.html
1F:推 fragmentwing: 有疑惑+1 有的則是沒else卻又不是一行寫完 05/02 09:51
2F:→ fragmentwing: 然後你的問題應該改成if不成立do是否會執行吧 05/02 09:53
3F:→ fragmentwing: 不然就算if跟do的狀況分開,if沒執行do還是會執行啊 05/02 09:53
4F:→ fragmentwing: 另外編譯器好像do if的end常常會當同一種東西 05/02 09:53
5F:→ fragmentwing: 明明就是do沒end卻回報if出問題…… 05/02 09:54
6F:→ fragmentwing: 喔喔,原來是因為手機版拆成兩行 05/02 09:55
7F:→ fragmentwing: 這樣我可以回答你 05/02 09:55
8F:→ fragmentwing: 這其實可以寫成 05/02 09:56
9F:→ fragmentwing: if(邏輯成立)執行a 05/02 09:56
10F:→ fragmentwing: 有時候那個then不拔掉編譯還不給過 05/02 09:57
11F:→ fragmentwing: 當if寫成一行時,是可以不用end if的 05/02 09:59
12F:→ fragmentwing: 另外,這樣當然與下一行的do沒關係 這個if只是判斷 05/02 09:59
13F:→ fragmentwing: 要不要讓k輸入999而已 05/02 09:59
14F:→ fragmentwing: kk 05/02 09:59
15F:推 fragmentwing: 補充一點,學C的朋友跟我是我,do這種行代碼寫法根 05/02 10:13
16F:→ fragmentwing: 本是在整人 05/02 10:13
17F:→ fragmentwing: 是“跟我說”……自動選字的鍋 05/02 10:14
18F:→ fragmentwing: 另外fortran的行代碼應用很廣,write read 的format 05/02 10:16
19F:→ fragmentwing: 格式、 do 迴圈和goto都有 05/02 10:16
20F:→ fragmentwing: 其實還挺好奇哪些用同樣行代碼會撞到哪些不會 05/02 10:16
21F:→ fragmentwing: 猜測write和goto不會撞的可能性最高 05/02 10:16
22F:→ fragmentwing: equivalence不熟,dimension只是宣告成矩陣寫法,我 05/02 10:21
23F:→ fragmentwing: 也習慣這樣寫,會比單純各別宣告成例如a(10:10)還要 05/02 10:21
24F:→ fragmentwing: 明顯是矩陣 05/02 10:21
25F:→ fragmentwing: integer,dimension(10:10) :: a,b,c 05/02 10:21
26F:→ fragmentwing: 這樣a,b,c都是10*10的二維矩陣 05/02 10:21
27F:→ fragmentwing: 應該說是陣列 05/02 10:22
28F:推 espresso1: block if 的 then 右邊不能再放 statement,fortran 77 05/02 18:08
29F:→ espresso1: 就是這樣了,現在的 compiler 應該不給過 05/02 18:08
30F:推 special1990: 我老闆就是用這種行代碼的寫法...第一次看的時候超級 06/15 11:16
31F:→ special1990: 崩潰 06/15 11:16
32F:→ blc: if(i)10,20,30 06/27 21:13
33F:推 CGS0: F77 應該就有 ,很多程式語言都有類似的單行精簡版 if 07/08 14:25
34F:→ erre: 現在還用福船,誰聽到不生氣! 07/13 22:42