【问题标题】:Select case number between in Classic ASP在 Classic ASP 中选择案例编号
【发布时间】:2016-05-26 12:27:32
【问题描述】:

如何在 Classic ASP 中进行如下选择?

<%
Select case aNumber
    case 1 to 2
        a="pizza"
    case 3 to 4
        a="pasta"
    case else
        a="spaghetti"
end select
%>

【问题讨论】:

  • 不@Lankymart,不是。
  • 你怎么看出来的?您问如何在 VBScript 中执行 VB.Net syntax trick,简单的答案是它不存在,存在的内容列在该问题的答案中。 my answer 这里没有帮助吗?
  • @Lankymart 通过对无效代码进行采样来询问how can I make like 不是How do you implement 我认为的重复项。我称之为解决方法寻求。
  • 看 @Kul-Tigin 在 VBScript 中查找 Select Case 语法不需要 5 分钟,我将其标记为可能的 dup,因为它仍然试图提供答案来帮助操作。你会知道它已经有 3 票接近,所以有人不同意你的观点。

标签: vbscript asp-classic


【解决方案1】:

Select Case Statement 中指定范围是从VB6 时代开始的,可能更早。 VBA 和 VB.Net 也支持但从未在 VBScript 中实现,奇怪。所以你不能。

但还有其他方法可以达到类似的效果。例如下面的解决方法:

Select Case True 'looking for True
    Case aNumber >= 1 And aNumber <= 2
        a = "pizza"
    Case aNumber >= 3 And aNumber <= 4
        a = "pasta"
    Case Else
        a = "spaghetti"
End Select

或通过辅助函数增强:

Function InRange(val, min, max)
    InRange = val >= min And val <= max
End Function

Select Case True 'looking for True
    Case InRange(aNumber, 1, 2)
        a = "pizza"
    Case InRange(aNumber, 3, 4)
        a = "pasta"
    Case Else
        a = "spaghetti"
End Select

【讨论】:

  • 我自己以前用过这种方法。
  • @Lankymart 我敢打赌你有,而不是几十个嵌套的If 块:/
  • 我必须承认,虽然作为一种快速破解方法,我倾向于支持Case value, value, ...。显然,如果您要处理大范围,这种方法会更好。
【解决方案2】:

你不能,但有一个解决方法

<%
Dim aNumber: aNumber = 1
Dim a

Select case aNumber
Case 1, 2
  a = "pizza"
Case 3, 4
  a = "pasta"
Case Else
  a = "spaghetti"
End Select

Call Response.Write(a)
%>

输出:

pizza

这可能看起来像上面,但它的工作方式不同,例如,如果我们想将第一个 Case1 to 2 更改为 1 to 3

<%
Dim aNumber: aNumber = 2
Dim a

Select case aNumber
Case 1, 3
  a = "pizza"
Case 4
  a = "pasta"
Case Else
  a = "spaghetti"
End Select

Call Response.Write(a)
%>

输出:

spaghetti

我们没有得到pizza,因为Case 必须包含所有选项,它不能在范围基础上工作,因此需要进行以下修改才能工作;

Case 1, 2, 3

输出:

pizza

有用的链接

【讨论】:

  • 问题是,如果aNumber等于2.312423呢?
  • @Martha 如果它处理小数,那么这显然不好,Kul-Tigin 的方法会更好,但同样如果你通过了一个日期范围,它也行不通,但是嘿我没有意识到OP走得那么深。这就是平庸问题的问题,由于OP投入的努力不足,这些问题可以解释。老实说,这非常令人沮丧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-30
  • 2020-04-04
  • 2017-08-23
相关资源
最近更新 更多