今天再看程式的時候突然有了乙個疑問,所以用了乙個簡單的迴圈測試了一下,雖然簡單,但是.......那就簡單吧。
program aaaaaaaa
implicit none
integer i,j
real x(22)
do i=1,10
x(i)=i
write(*,*) i,x(i)
enddo
do j=1,10
i=i+1
x(i)=j
write(*,*)i,x(i)
enddo
write(*,*) "x(11)=",x(11)
end program
最後輸出的結果是
簡單的以為第乙個迴圈結束後i=10,所以代入到第二個迴圈中也是10。然而奇怪的是最後沒有輸出i=11時候的值。而是直接i+1後代入第二個迴圈。
後來討論之後發現是因為第乙個迴圈後i的輸出值就是11了。因為第乙個迴圈中i從1開始,然後2、3…9,i=10的時候繼續迴圈,之後i=10+1的時候大於10了,所以跳出了迴圈。此處跳出迴圈是指i>10,而不是i=10之後就立馬跳出。
看樣子迴圈理解的不深啊。。。
Fortran學習雜記 一
1.內建函式 1 數值運算 常見 abs aimag conj max min mod a,b real cmplx a,b 2 學函式 命名類似matlab sin asin cos acos tan atan log sinh cosh tanh sqrt 3 陣列函式 matmul 矩陣相乘 ...
Fortran 學習手記 陣列篇
part i 陣列定義 1.fortran最大支援7維的陣列 2.定義陣列大小的引數可以是數字或者常數 parameter 但不可以是變數 3.定義陣列的幾種形式 1 integer a 10,10 最簡單的方法 2 integer,dimension 10,10 a 另外一種做法 3 intege...
fortran 語法學習之二
1 參考offloading success.c的寫法,將c 翻譯為fortran的寫法如下 參考第乙個引數的預設屬性是tofrom omp target map from ishost ishost omp is initial device omp end target2 參考 中 定義的變數,...