Loops 在Fortran中执行循环排除多个值
如何在Fortran中实现这一点Loops 在Fortran中执行循环排除多个值,loops,fortran,Loops,Fortran,如何在Fortran中实现这一点 do i = 1, n Except n/2 有没有一种方便的方法来代替在循环中使用“if”呢?在循环中放置一个if语句 do i=1,n if (i /= n/2) ... end do 或者带掩码的forall语句,或者在某些情况下可以使用where语句。在循环中放置if语句 do i=1,n if (i /= n/2) ... end do 或者带掩码的forall语句,或者在某些情况下可以使用where语句。如果您不喜欢循环中的条件
do i = 1, n Except n/2
有没有一种方便的方法来代替在循环中使用“if”呢?在循环中放置一个
if
语句
do i=1,n
if (i /= n/2) ...
end do
或者带掩码的
forall
语句,或者在某些情况下可以使用where
语句。在循环中放置if
语句
do i=1,n
if (i /= n/2) ...
end do
或者带掩码的
forall
语句,或者在某些情况下可以使用where
语句。如果您不喜欢循环中的条件句
do i = 1,(n/2)-1
...
end do
do i = (n/2)+1,n
...
end do
如果
n
是或可能是奇数,则需要调整循环的停止/启动索引 如果你厌恶循环中的条件句
do i = 1,(n/2)-1
...
end do
do i = (n/2)+1,n
...
end do
如果
n
是或可能是奇数,则需要调整循环的停止/启动索引 有很多解决方案。这里是一个使用循环的。循环中仍然有一个if
语句,但没有if。。。如果
阻塞,则结束
MyLoop: do i=1, N
if ( i == N/2 ) cycle MyLoop
! use the loop....
write (*, *) i
end do MyLoop
有很多解决办法。这里是一个使用循环的。循环中仍然有一个if
语句,但没有if。。。如果
阻塞,则结束
MyLoop: do i=1, N
if ( i == N/2 ) cycle MyLoop
! use the loop....
write (*, *) i
end do MyLoop
在循环中使用条件语句有什么错?在循环中使用条件语句有什么错?