选择带有条件的案例(经典 ASP)

Sku*_*ndy 5 vbscript asp-classic select-case

<%
i=2 
  Select Case i
  Case 1,2,3,4,5,7,8,9,10
    response.write("Grade A")
  Case 11,12,13,14,15,16,17,18,19,20  
    response.write("Grade B")
  Case 21,22,23,24,25,26,27,28,29,30
    response.write("Grade C")
  Case 31,32,33,34,35,36,37,38,39,40
    response.write("Grade D")
  Case Else
    response.write("Invalid")
  End Select
  %> 
Run Code Online (Sandbox Code Playgroud)

如何用更小的语句替换 1,2,3..。我试过把 1 到 10 但它显示错误。

感谢任何帮助,谢谢!

MC *_* ND 5

一些替代品

grade = "Invalid"
Select Case True
    Case i < 1   
    Case i < 11 : grade = "Grade A"
    Case i < 21 : grade = "Grade B"
    Case i < 31 : grade = "Grade C"
    Case i < 41 : grade = "Grade D"
End Select 
Run Code Online (Sandbox Code Playgroud)

或者

If i > 0 And i < 41 Then 
    grade = "Grade " + Chr(Asc("A") + (i-1)\10)
Else 
    grade = "Invalid"
End If 
Run Code Online (Sandbox Code Playgroud)

或者

If i > 0 And i < 41 Then 
    grade = Array("Grade A", "Grade B", "Grade C", "Grade D")((i-1)\10)
Else 
    grade = "Invalid"
End If 
Run Code Online (Sandbox Code Playgroud)

编辑以纠正 Ekkehard.Horner 指出的错误


STL*_*Dev -2

您在页面中使用 VBScript。它不支持Select Case声明中的范围。使用语句可能会更好If/ElseIf

<%
    i=2
    If i > 0 And i <= 10 Then
        Response.Write("Grade A")
    ElseIf i > 10 And i <= 20 Then
        Response.Write("Grade B")
    ElseIf i > 20 And i <=30 Then
        Response.Write("Grade C")
    ElseIf i > 30 And i <= 40 Then
        Response.Write("Grade D")
    Else
        Response.Write("Invalid")
    End If
%>
Run Code Online (Sandbox Code Playgroud)