Как я могу сделать выбор, как показано ниже, в Classic ASP?
<%
Select case aNumber
case 1 to 2
a="pizza"
case 3 to 4
a="pasta"
case else
a="spaghetti"
end select
%>
Как я могу сделать выбор, как показано ниже, в Classic ASP?
<%
Select case aNumber
case 1 to 2
a="pizza"
case 3 to 4
a="pasta"
case else
a="spaghetti"
end select
%>
how can I make like
путем выборки недопустимого кода, не является дубликатом How do you implement
, я думаю. Я называю это поиском обходного пути. 26.05.2016 Select Case
в VBScript не займет 5 минут, я пометил это как возможную дубликат, но все же попытался дать ответ, чтобы помочь OP. Как вы знаете, за него уже проголосовали 3 человека, так что кто-то с вами не согласен. 26.05.2016 @language
или блок <script language="..." runat="server">
. 26.05.2016 Case value to value
, не имеет значения (поскольку такого синтаксиса не существует). Честно говоря, дублирование это или нет, не имеет значения, поскольку ответы все равно были оставлены и за них проголосовали, так что в худшем случае он помечается как дубликат, но все равно остается. 27.05.2016 Указание диапазонов в 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
Вы не можете, но есть обходной путь
<%
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
Это может выглядеть так, как описано выше, но это не работает так же, например, если мы хотим изменить 1 to 2
на 1 to 3
для первого Case
;
<%
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
Условие в случае оператора Select/Case в классическом ASP (не самое ясное объяснение)
aNumber
равно 2,312423? 27.05.2016
If
:/ 26.05.2016Case value, value, ...
. Очевидно, что если вы имеете дело с большими диапазонами, этот подход лучше. 26.05.2016