Fortran Coder

查看: 12338|回复: 4

[流程控制] 求助IF循环语句

[复制链接]

29

帖子

10

主题

0

精华

熟手

F 币
152 元
贡献
98 点
发表于 2021-4-10 11:09:38 | 显示全部楼层 |阅读模式
在程序中的IF语句,得到的Cv只是最后的1.362E9,初始温度为30℃,为什么不进行循环
[Fortran] 纯文本查看 复制代码
Cv  材料比热容(mJ/(t*K))
      IF (TEMP .LT. 410.0)THEN
          Cv=(0.8228+0.0028*(TEMP-273))*1E9
      ELSE IF (TEMP .LE. 550.0)THEN
          Cv=(1.078+0.001*(TEMP-273))*1E9
      ELSE
          Cv=1.362E9
      END IF


953

帖子

0

主题

0

精华

大师

F 币
180 元
贡献
73 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2021-4-10 13:05:27 | 显示全部楼层
因为 If 是判断语句,并不是循环语句。

29

帖子

10

主题

0

精华

熟手

F 币
152 元
贡献
98 点
 楼主| 发表于 2021-4-12 09:25:00 | 显示全部楼层
vvt 发表于 2021-4-10 13:05
因为 If 是判断语句,并不是循环语句。

是我表达错了  我的意思是这段程序中IF的判断结果都是1.362E9并不会根据当前温度选择其他的比热容

953

帖子

0

主题

0

精华

大师

F 币
180 元
贡献
73 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2021-4-12 17:44:18 | 显示全部楼层
下断点调试一下就知道了。

953

帖子

0

主题

0

精华

大师

F 币
180 元
贡献
73 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
发表于 2021-4-12 17:53:36 | 显示全部楼层
我试了一下简单的代码。
[Fortran] 纯文本查看 复制代码
Program Main
  real :: temp = 30 , cv
   IF (TEMP .LT. 410.0)THEN
          Cv=(0.8228+0.0028*(TEMP-273))*1E9
      ELSE IF (TEMP .LE. 550.0)THEN
          Cv=(1.078+0.001*(TEMP-273))*1E9
      ELSE
          Cv=1.362E9
      END IF
write(*,*) cv      
End Program Main


执行的是第一个分支,结果是 1.4240003E+08

并没有出现你说的,结果是 1.362E9
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-3-29 06:27

Powered by Tencent X3.4

© 2013-2024 Tencent

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