当前位置:  开发笔记 > 编程语言 > 正文

如何终止do循环?

如何解决《如何终止do循环?》经验,为你挑选了1个好方法。

我正在编写一个非常基本的Fortran代码来创建Ising模型.但是,我陷入了最后一步 - 重复计算直到达到最稳定的状态.

do
!Calculation (omitted here)
!Making a decision
if (E1 /= -64) then             !not yet stable
    if(dE > 0.0) then       
    call seed
    call random_number(prob)        ! random generate a number which is 0 <= Prob <= 1      
    Print *, prob
        if(Prob < exp(-dE/T)) then
                        !do nothing as the flip was made
        else
        mat(b,c) = -mat(b,c)        !flip the sign back, i.e. reject the change; only accept with probability of exp(-dE/T)
        end if
    else
    end if                  !Since the sign has changed already, if dE<0, the move must be accepted. Therefore no additional move should be taken
else
end do
end if
end do

显然,Fortran并不喜欢最后一个end do声明,因为我没有do特别定义.我想要的只是退出do循环一次E1 == -64.



1> Vladimir F..:

在Fortran中,您可以使用该exit语句随时退出do循环.

  do
    ...
    if (condition) exit
  end do

如果标记了do循环,也请使用exit语句中的标签

outer: do
  inner: do
    ...
    if (condition) exit outer
  end do inner
end do outer

Fortran 2008也允许其他构造的exit语句.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有