Fortran中从列表中循环的方法

9

我使用Fortran,想知道是否有可能做出类似的东西。

  do i = array
    write (*,*) i
  end do

其中,array是一个整数列表,不一定按顺序排列。

2个回答

8
我建议添加第二个索引以迭代数组元素:
program test

  implicit none

  integer, dimension(6)  :: A
  integer, dimension(10) :: B
  integer                :: i, j

  A = (/ 1, 3, 4, 5, 8, 9 /)
  B = (/ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 /)

  do j = 1, size(A)
     i = A(j)
     write(*,*) i, B(i)
  end do

end program test

3
你的意思是你想写入一个名为other_array的数组的某些元素,而不是全部元素,并且i应该依次取任意值?换句话说,你想打印出不是所有元素的内容。
do i = 1, size(other_array,1)
    write(*,*) other_array(i)
end do

但是类似于这样的东西

array = [1,3,4,2,3,7,8,8,12]
write(*,*) another_array(array)

如何写出 array 中指定的 another_array 元素?这被称为数组下标。我还没有测试过,现在要走了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接