我要求用户在运行时给出一个值来进行一些计算。
- 我想测试用户输入的值是否是实数/整数,如果不是,则发出警告,表明程序在这里需要实数/整数。
- 此外,我还想知道我们如何检查当前特定变量是否为空或为空。即我已经声明了一个变量,但是如果在计算时它的值为空或空或尚未设置,在这种情况下,程序不应该崩溃,而是给出警告以提供正确的值。
这两种操作在 C++ 和 C# 中都容易得多,但我在 Fortran 中找不到这样做的方法。
我要求用户在运行时给出一个值来进行一些计算。
这两种操作在 C++ 和 C# 中都容易得多,但我在 Fortran 中找不到这样做的方法。
我猜“空或空”是指变量是否已初始化:“尚未设置”。“null”对于 Fortran 指针变量具有特殊含义,但我想这不是你的问题。Fortran 在有意初始化变量之前不会自动为变量赋予特殊值,因此没有简单的方法来检查变量是否已初始化。一种方法是使用特殊值初始化变量的声明。这意味着您需要知道它在程序运行中永远不会获得的特殊值。一种可能性是使用huge
内在函数:
program TestVar
real :: AVar = huge (1.0)
if ( AVar < huge (1.0) ) then
write (*, *) "Test 1: Good"
else
write (*, *) "Test 1: Bad"
end if
AVar = 2.2
if ( AVar < huge (1.0) ) then
write (*, *) "Test 2: Good"
else
write (*, *) "Test 2: Bad"
end if
end program TestVar
正如@arbautjc 警告的那样,即使在子例程中,这也只能工作一次。在一个过程中,带有声明的初始化只在第一次调用时完成。此外,如果您更改此示例中的变量类型,请务必了解其huge
工作原理(例如,Fortran 中的 Long ints)。