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 但它显示错误。
感谢任何帮助,谢谢!
一些替代品
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)