主题:菜鸟请教关于do循环谢谢大家
lwlwd04lwlwd04
[专家分:0] 发布于 2010-04-06 11:46:00
想做一个循环,关于循环变量要进行变换
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个回复)
沙发
yrliu [专家分:750] 发布于 2010-04-06 14:16:00
i=1
do while (i .le. 10)
If(i.eq.6)i=i+3
X=x+i
write(*,*)x,i
i=i+1
enddo
板凳
asymptotic [专家分:16630] 发布于 2010-04-07 00:02:00
楼主关键是要理解 Do 循环是如何执行的?这个在 Fortran 2003 Handbook 中有明确的解释。
3 楼
yeg001 [专家分:14390] 发布于 2010-04-07 07:38:00
fortran里面的do循环变量i在循环内部不能作修改. 这点跟C不同.
4 楼
iamyangel@126 [专家分:0] 发布于 2010-04-07 21:39:00
2003 handbook 是哪个版本的啊?软件里带的么?
5 楼
iamyangel@126 [专家分:0] 发布于 2010-04-07 21:43:00
2003 handbook 是哪个版本的啊?软件里带的么?
辛苦轨迹线前辈告诉下
6 楼
asymptotic [专家分:16630] 发布于 2010-04-07 23:42:00
The Fortran 2003 Handbook P274 请参考这几面的解释
我来回复