我阅读了有关语句功能的内容,例如:
C(F) = 5.0*(F - 32.0)/9.0
这不是:
C = 5.0*(F - 32.0)/9.0
即。没有功能部分,或者我可能遗漏了什么?
如果它们不相同,我什么时候需要使用声明函数?
答案 0 :(得分:6)
C = 5.0*(F - 32.0)/9.0
只是赋值给变量C
,它可以在任何地方,每次程序流到达时都会被评估一次。
C(F) = 5.0*(F - 32.0)/9.0
是一个语句函数,可以在范围内的任何时候进行评估,例如,C(100)
返回大约37.8
。
从某些代码
xx(i) = dx*i
f(a) = a*a
do i = 1, nx
x = xx(i)
print *, f(x)
end do
使用f(x)
的每个新值评估print语句中的x
并生成新值。 x
的值也是对前一行语句函数xx
的评估结果。
但声明函数现在(在Fortran 95中)声明已过时。更好地在任何新代码中使用内部函数。如,
program p
implicit none
!declarations of variables x, i, nx, dx
do i = 1, nx
x = xx(i)
print *, f(x)
end do
contains
real function xx(i)
integer, intent(in) :: i
xx = dx*i
end function
real function f(a)
real, intent(in) :: a
f = a*a
end function
end program