0

我的代码中有以下部分。

 x=1.d0
 y=1.d0
 do while (x<5.0)
   do while (y<3.0)
      print*,'x=',x,'  y=',y
      y=y+1.d0
   end do
   print*,'x================',x
   x=x+1.d0
 end do  

在这里,我的意图是通过 y-do-loop 为 x-do-loop 的 x 中的每个更新改变 y 值。但是,在第一个 x 循环之后,y 循环不再执行,即我得到以下输出。

x=   1.0000000000000000        y=   1.0000000000000000     
 x=   1.0000000000000000        y=   2.0000000000000000     
 x================   1.0000000000000000     
 x================   2.0000000000000000     
 x================   3.0000000000000000     
 x================   4.0000000000000000

我不能出于我的目的使用 do while 吗?如果是,可以进行哪些修改?

4

1 回答 1

1

您没有重置y外部循环中的值,因此在y递增到 3 后,它永远不会再小于 3。您应该尝试:

x=1.d0
do while (x<5.0)
   y=1.d0
   do while (y<3.0)
      print*,'x=',x,'  y=',y
      y=y+1.d0
   end do
   print*,'x================',x
   x=x+1.d0
end do  
于 2013-06-25T13:27:34.970 回答