简单fortrando循环

简单fortrando循环,fortran,fortran90,Fortran,Fortran90,我对Fortran非常陌生,有一个简单的循环问题,我在任何地方都找不到答案 如果我有这样一个循环: do l = -0, 0 ! do something ! something else end do 循环是否被调用过?我的第一个倾向是否定。但也许Fortran中有一个微妙之处我不知道?do语句的形式如下: DO do_variable = m_1, m_2 [, m_3] 其中m_1是初始参数,m_2是终端参数,m_3是可选的增量参数默认值为1,循环迭代次数计算为 (m_2

我对Fortran非常陌生,有一个简单的循环问题,我在任何地方都找不到答案

如果我有这样一个循环:

do l = -0, 0
   ! do something 
   ! something else
end do

循环是否被调用过?我的第一个倾向是否定。但也许Fortran中有一个微妙之处我不知道?

do语句的形式如下:

DO do_variable = m_1, m_2 [, m_3]
其中m_1是初始参数,m_2是终端参数,m_3是可选的增量参数默认值为1,循环迭代次数计算为

(m_2 - m_1 + m_3) / m_3 
对于循环,对于1次迭代,其计算结果为0--0+1/1=1

参考:ISO/IEC 1539-1:2010 Fortran 2008第8.1.6.6.1节

例如:

program test
implicit none
integer :: i
do i=1,1
   write (*,*) 'Iteration with i=',i
end do
end program test
输出:

% ./doloop1 
Iteration with i=           1

你试过了吗?怎么了?谢谢。我刚试过。我很惊讶,它实际上只运行了一次。你能解释一下原因吗?从他们的do循环的定义来看,我没想到会是这样。答案很好。这是有道理的。谢谢