今天再看程序的时候突然有了一个疑问,所以用了一个简单的循环测试了一下,虽然简单,但是.......那就简单吧。
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之后就立马跳出。
看样子循环理解的不深啊。。。