gpt4 book ai didi

if-statement - IF 和 WHERE 的等价

转载 作者:行者123 更新时间:2023-12-04 14:14:12 25 4
gpt4 key购买 nike

我们都知道DO循环比 FORALL 更强大Fortran 中的语句。也就是说,您始终可以替换 FORALL来自 DO ,但反之则不然。
WHERE呢?语句和块?

我可以随时替换 IF来自 WHERE ?是否总是可以使用 WHERE 对条件和 fork 进行编码? ,从而避免了 IF ?

最佳答案

WHERE语句是为数组赋值保留的,没有别的,例如:

INTEGER, DIMENSION(100,100) :: a, b
... define a ...
WHERE(a < 0)
b = 1
ELSEWHERE
b = 0
ENDWHERE

如果您尝试添加某些内容,请说 WRITE声明,在 WHERE 内块,您会看到类似以下编译错误的内容(依赖于编译器):
Error: Unexpected WRITE statement in WHERE block at (1)

编辑

注意嵌套 WHERE块是合法的:
WHERE(a < 0)
WHERE( ABS(a) > 2)
b = 2
ELSEWHERE
b = 1
ENDWHERE
ELSEWHERE
b = 0
ENDWHERE

关于if-statement - IF 和 WHERE 的等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18257576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com