Fortran Coder

查看: 270|回复: 4
打印 上一主题 下一主题

[流程控制] 想请教一下这个if函数的逻辑和参数传递

[复制链接]

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2024-3-21 11:27:33 | 显示全部楼层
没太听懂你的意思。
if判断并不会先执行2处的 else if,只会在 if 条件不满足时执行 else if。

你想要另一个分支的值,通常做法是把计算这个需要的值的代码放在 if 前面。
这样不管进入哪个分支,都会先计算这个值。每个分支都能使用。

你可能需要定义额外的变量来存储它

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2024-3-21 16:20:08 | 显示全部楼层
用文字表达算法,就是不太清楚。我不是很清楚你想要的算法是什么样子。
如果你要先找到一个符合条件的 i 。你要不要考虑用2次循环?

第一次先找到符合条件的 i,并保存在 k 里,然后计算对应的 qulv 值。
然后第二次循环,做下一步使用 k 和 qulv 值的计算。
[Fortran] 纯文本查看 复制代码
k = 0
do i = 1 , reso
  if( X_I(I)>L2 ) then
    k=i
    qulv = ...
    exit
  end if
end do
do i = 1 , reso
  m_jisuan(k ??? i ...
end do
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-9 22:06

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表