If statement 确定三个数字的最小/最大值

If statement 确定三个数字的最小/最大值,if-statement,vbscript,scripting,qtp,If Statement,Vbscript,Scripting,Qtp,我一直在尝试使用执行VBScript,如果。。。然后条件。 这就是我要展示的 我必须显示3条消息:一条是最高数字,第二条是最低数字,第三条将显示消息“数字相同”(如果它们都相等)。 我需要让三个弹出窗口逐个出现 我试过这个: Option explicit Dim Gn, Sn, En Gn= inputbox("enter first number") Sn= inputbox("enter second number") En =inputbox("enter third number"

我一直在尝试使用
执行VBScript,如果。。。然后
条件。 这就是我要展示的

我必须显示3条消息:一条是最高数字,第二条是最低数字,第三条将显示消息
“数字相同”
(如果它们都相等)。 我需要让三个弹出窗口逐个出现

我试过这个:

Option explicit

Dim Gn, Sn, En

Gn= inputbox("enter first number")
Sn= inputbox("enter second number")
En =inputbox("enter third number")

If ((Gn > Sn) AND (Gn > En)) then
Msgbox ("The Highest Number Is =" & Gn)
End if
If ((En =Gn) AND (En =Sn)) then
Msgbox ("The Numbers Are Equal =" & En)
End if
If ((Sn<Gn) AND (Sn <En))then
Msgbox ("The Lowest Number Is =" & Sn)
End If
我将不得不尝试所有的排列和组合,以使上述一个工作


请帮忙

如果希望消息框始终出现,请不要将它们放在
If
语句中。首先确定最小/最大值,然后无条件显示消息框

如果您创建了两个函数(
Min
Max
)来帮助您解决以下问题,这将更容易:

Function Min(x, y)
    If x < y Then Min = x Else Min = y
End Function

Function Max(x, y)
    If x > y Then Max = x Else Max = y
End Function
最后,您需要确保您的输入被视为数字而不是字符串
InputBox()
将返回一个字符串,因此需要将该值转换为数字,否则比较结果将不正确

如果要假设输入了数字,只需强制转换返回值:

' Assume integers are being entered. If floating point, use CDbl() instead.
Gn = CLng(inputbox("enter first number"))
否则,您可以测试返回值是否为数字,然后正确地强制转换它:

Gn = inputbox("enter first number")

If Not IsNumeric(Gn) Then
    MsgBox Gn & " is not numeric."
Else
    Gn = CLng(Gn)
End If
' Assume integers are being entered. If floating point, use CDbl() instead.
Gn = CLng(inputbox("enter first number"))
Gn = inputbox("enter first number")

If Not IsNumeric(Gn) Then
    MsgBox Gn & " is not numeric."
Else
    Gn = CLng(Gn)
End If