fortran语言 循环问题
fortran语言 循环问题
program eee
integer a
a=1
do 11 a=1,10
if (a.GE.5) go to 11
write(*,*)a
11 continue
write(*,*)a
stop
end
请问为什么出来的结果是1,2,3,4,11呢?求大神解答,无限感谢~~
第一次,输出1
第二次,输出2
第三次,输出3
第四次,输出4
第五次,大于等于5,跳到下一次循环.
第六次,同上
第七次,同上
...
第10次,同上.
最后,输出a = 11
因此,结果是1,2,3,4,11
如果你想输出1,2,3,4,5.那么这样:
do 11 a=1,10
if (a.GE.5) go to 12
write(*,*)a
11 continue
12 write(*,*)a
不过这样的写法不好,最好是这样:
do a=1,10
if (a.GE.5) Exit
write(*,*)a
End Do
write(*,*)a
如果写成
do a=1,10
if (a.GE.5) Cycle
write(*,*)a
End Do
write(*,*)a
则等于你的代码了.我不明白这段程序,do 11 a=1,10 if (a.GE.5) go to 12write(*,*)a11 continue12 write(*,*)a照程序的意思,a从1到10循环加1,a=1时,不满足if(>5)的条件,那么不会go to 12,程序继续向下循环,知道a=6的时候,才满足if(>5)的条件,go to 12 ,写出a,那不应该显示出6,7,8,9,10 么??为什么显示的是1,2,3,4,5呢,求天河兄指教,无限感谢.......问题没解决之前,不要采纳。不然你没法再追问了。我先回答你,如果还有问题,私信追问。应该是 a=5 就满足了。 a.ge.5 可以写为 a >= 5。大于等于。Fortran 支持直接书写 a>=5,你手上的教科书太老了,建议你更换一本新的教科书。a=5时满足,跳过。a=6时也满足,跳过。a=7时依然满足,还是跳过。直到循环完毕,a都大于等于5,所以5以后的都不输出了。