请问fortran中循环i=1,4与i=1:4有什么区别
就比如M(4)=(/(1,i=1,4)/)可以把逗号改为冒号吗
在Fortran中,循环的语法有多种形式,其中包括使用逗号(,
)和冒号(:
)的不同方式。
使用逗号(,
)表示循环范围:
i = 1, 4
表示循环变量 i
的取值范围是从 1 到 4,包括 1 和 4。i
的取值分别是 1、2、3 和 4。使用冒号(:
)表示循环范围:
i = 1:4
表示循环变量 i
的取值范围是从 1 到 4,包括 1 和 4。i
的取值分别是 1、2、3 和 4。两种表示方式在语义上是等价的,都表示循环变量从 1 到 4 进行循环。你可以根据个人喜好选择使用逗号或冒号来表示循环范围。
至于你提到的将逗号改为冒号的情况,是不可以直接替换的。在Fortran中,循环范围的表示方式是固定的,使用逗号或冒号取决于编程者的习惯和可读性的需求。
1、普通循环(包括隐循环),都使用前者,比如
do i=1,4
M(i)=i
end do
或
M(1:4)=(/(i,i=1,4)/)
2、只有在forall、do concurrent 才用后者。这俩是为了便于并行创造的,也就是说4个元素可以同时执行。
forall(i=1:4)
M(i)=i
end forall
或
do concurrent (i=1:4)
M(i)=i
end do