回 帖 发 新 帖 刷新版面

主题:[讨论]求助:怎样跳出循环??

各位大侠:
    我需要用一个循环程序,当早某一满足一定的条件时即跳出循环,但是总是显示循环没有完成而无法编译。我的程序如下:
    PROGRAM main
     IMPLICIT NONE
     integer::i,j
     real::K4,K5
     real,dimension(1:10)::KK
     KK=(/1,2,3,4,4,4,4,4,4,5/)
     do i=1,8
        K4=maxval(abs(KK(i:i+2))) !我的想法是找到最先出现4放入位置
        K5=minval(abs(kk(i:i+2)))
        if(K4.EQ.K5)j=i;cycle   
     end

编译错误::\Fortran-Program\wwp.f90(7) : Error: An unterminated block exists.
     do i=1,8
^
Error executing df.exe.

请问这是什么原因呢?是我的思路有问题还是语法错误?
以前一直用的是matlab,由于要进行大量的计算,matlab算的速度太慢了,所以转向Fortran了,请各位大侠帮帮小弟啊!!感激不尽啊!

回复列表 (共3个回复)

沙发

刚才看了“臭石头雪球”大哥在另外一个帖子里边对我问题的解答,恍然大悟。现在我了解了,应该这个问题也是cycle前边的分号用的不对。改了一下:
     PROGRAM main
     IMPLICIT NONE
     integer::i,j
     real::K4,K5
     real,dimension(1:10)::KK
     KK=(/1,2,3,4,4,4,4,4,4,5/)
     do i=1,8
        K4=maxval(abs(KK(i:i+2)))
        K5=minval(abs(kk(i:i+2)))
        if(K4.EQ.K5)then
        j=i
        cycle
        end if   
     end do
     write(*,*)j
     end  PROGRAM main
这下可以运行了。再次对“臭石头雪球”表示感谢!!

板凳

真神奇,我还没来呢,就解决了。

3 楼

呵呵,这也是你的功劳啊!!看了另外一个帖子我才发现问题基本差不多!
哎,Fortran菜鸟表示压力很大啊!!
还得努力啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册