回 帖 发 新 帖 刷新版面

主题:菜鸟请教关于do循环谢谢大家

想做一个循环,关于循环变量要进行变换

           Do i=1,10
    If(i.eq.6)i=i+3
    X=x+i
    write(*,*)x,i
    End do
    End
运行后,会出现错误:An assignment to a DO variable within a DO body is invalid
请问,这样的话该如何更正呢?

谢谢指点,在此拜谢!

回复列表 (共7个回复)

沙发

i=1
do while (i .le. 10)

    If(i.eq.6)i=i+3
    X=x+i
    write(*,*)x,i

i=i+1
enddo

板凳

楼主关键是要理解 Do 循环是如何执行的?这个在 Fortran 2003 Handbook 中有明确的解释。

3 楼

fortran里面的do循环变量i在循环内部不能作修改. 这点跟C不同.

4 楼


2003 handbook 是哪个版本的啊?软件里带的么?

5 楼


2003 handbook 是哪个版本的啊?软件里带的么?
  

辛苦轨迹线前辈告诉下

6 楼

The Fortran 2003 Handbook P274  请参考这几面的解释

7 楼


谢谢大家的指点~[em12]

我来回复

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