if-statement - 如何在 VBScript for Classic-ASP 中执行单行 If 语句?

标签 if-statement syntax vbscript asp-classic

“单行 if 语句”存在于 C# 和 VB.NET 中,就像在许多其他编程和脚本语言中一样,格式如下

lunchLocation = (dayOfTheWeek == "Tuesday") ? "Fuddruckers" : "Food Court";

有谁知道 VBScript 中是否有,确切的语法是什么?

最佳答案

条件三元运算符不是开箱即用的,但在 VBScript 中创建自己的版本非常容易:

Function IIf(bClause, sTrue, sFalse)
    If CBool(bClause) Then
        IIf = sTrue
    Else 
        IIf = sFalse
    End If
End Function

然后,您可以根据您的示例使用它:
lunchLocation = IIf(dayOfTheWeek = "Tuesday", "Fuddruckers", "Food Court")

与使用单行相比的优势 If/Then/Else是它可以直接与其他字符串连接。使用 If/Then/Else单行必须是该行的唯一语句。

没有对此进行错误检查,并且该函数需要一个格式良好的表达式,该表达式可以计算为作为子句传入的 bool 值。有关更复杂和全面的答案,请参见下文。希望这个简单的回答巧妙地展示了答案背后的逻辑。

还值得注意的是,与真正的三元运算符不同, sTruesFalse无论 bClause 的值如何,参数都会被评估 .如果您像问题中那样将它与字符串一起使用,这很好,但是如果您将函数作为第二个和第三个参数传入,请务必小心!

关于if-statement - 如何在 VBScript for Classic-ASP 中执行单行 If 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353072/

相关文章:

windows - Vbscript 打印屏幕到 MSpaint

vbscript - QTP 无法识别 java 对象

c# - 许多 else 和 if 语句?

Excel - 识别一张工作表中的值与另一张工作表中具有不同范围的值

php - 弱类型 PHP : why use isset at all?

c# - 使用新处理程序附加事件处理程序与直接分配它

c++ - 返回模的解释

java - Do-while 循环未打印正确的变量

java - Java 中的对象创建语法

javascript - VBA .getElementbyID 并将值传递给 onchange javascript 事件