谁帮我改下这段if else代码

来源:百度知道 编辑:UC知道 时间:2024/05/02 16:22:30
是这样的,我已经写好了功能,也就是下面的第一个代码,但是我觉得运行效率低下,希望如果判断f_d和数组中一个值相等就退出循环,这样可以节省运行时间,所以修改成if else形式,也就是如下第二段代码,没想到出错了,说能帮忙修改下,要求我已经说了,就是判断f_d和数组中一个值相等就退出循环,以提高运行效率
------------------------
第一个代码,完好的能实现功能的代码:
------------------------
Function tuiash()
fi_d = cint(trim(request.QueryString("fi_d")))
Dim A1,A2,A3,A4,i,j,k,n
A1=Array(5,202,203)
A2=Array(204,205,206)
A3=Array(217,90,209)
A4=Array(210,211,212)

For i=0 To UBound(A1)
If A1(i)=fi_d Then
fc_state=18
End If
Next

For j=0 To UBound(A2)
If A2(j)=fi_d Then
fc_state=19
End If
Next

For k=0 To UBound(A3)
If A3(k)=fi_d Then
fc_state=20
End If
Next

For n=0 To UBound(A4)
If A4(n)=fi_d Then
fc_state=21
End If
Next

----------------------------
第二个代码,我修改后希望提高效率的代码(判断fi_d和数组中一个值相等就退出) ,不过出错了,希望帮我改改,要求已经说了 ,就是判断f_d和数组中一个值相等就退出循环,以

第一,一会儿f_d,一会儿fi_d,变量名不一致,这是出错的根本原因,
另外,你只用了4个For循环,却有5个next, 第一个next是多余的。
第二,你的循环结构效率太低,可能需要3*3*3*3=81次循环,效率还不如第一个;改成这样,最多12个循环就够了。

<%
Function tuiash()
fi_d = cint(trim(request.QueryString("fi_d")))

Dim A1,A2,A3,A4,i,j,k,n
A1=Array(5,202,203)
A2=Array(204,205,206)
A3=Array(217,90,209)
A4=Array(210,211,212)

fc_state=22
do
for i=0 to ubound(A1)
if fi_d=A1(i) then
fc_state=18
exit do
end if
Next

For j=0 To ubound(A2)
If A2(j)=fi_d Then
fc_state=19
exit do
end if
Next

For k=0 To UBound(A3)
If A3(k)=fi_d Then
fc_state=20
exit do
end if
Next

For n=0 To UBound(A4)
If A4(n)=fi_d Then
fc_state=21
exit do
end if
Next
exit do

Loop
end function
%>