我在这里设置了这个设置:
'highest number of days and lowest
niedrigsterTag = 8
hoechsterTag = 8
dim tageV(), tageB()
redim tageV(7), tageB(7)
'day-mapping
tageV(0) = replace(rs("TagVon"),"Mo", 1)
tageV(1) = replace(rs("TagVon"),"Di", 2)
tageV(2) = replace(rs("TagVon"),"Mi", 3)
tageV(3) = replace(rs("TagVon"),"Do", 4)
tageV(4) = replace(rs("TagVon"),"Fr", 5)
tageV(5) = replace(rs("TagVon"),"Sa", 6)
tageV(6) = 7
'for example: mo - fr
for each item in tageV
'save smallest weekday
if(isNumeric(item)) then
if(item <= niedrigsterTag) then
niedrigsterTag = item
Response.write(niedrigsterTag)
response.end()
end if
end if
next
正如您可能看到的,我对经典ASP非常陌生。我不明白我的循环中缺少什么。在伪代码中,它看起来很好:
对于我的数组中的每个数值,检查item的当前值是否为&lt; =当前maxValue(hoechsterTag) - 这是第一次迭代8.如果是,则覆盖当前值。
现在我被卡住了。我在最内层response.end()
添加了if
。但是, niedrigsterTag 的值为7
,而不是1
。此外,在第一次迭代期间,item
应为1,对吧?对我来说它是7.我想象response.end()
相当于PHP die()
我想要实现的目标:
如果当前迭代&lt;当前值,覆盖它,所以我以最小的值结束。
我知道这是非常基本的,到目前为止我没有在其他语言中做这样的事情的问题。不知道为什么会这么特别。
感谢您提供任何提示和建议
答案 0 :(得分:0)
当您将值分配给tageV数组时,您将它们指定为字符串,然后将它们与整数进行比较。您需要比较一个类似的数据类型。
另外,它们编写的方式如下:在第一次迭代中,如果项目为1且niedrigsterTag为8,则niedrigsterTag将更改为1,response.end将停止循环并退出。你需要的更像是这样:
'highest number of days and lowest
niedrigsterTag = 8
hoechsterTag = 8
dim tageV(), tageB()
redim tageV(7), tageB(7)
'day-mapping
tageV(0) = replace(rs("TagVon"),"Mo", 1)
tageV(1) = replace(rs("TagVon"),"Di", 2)
tageV(2) = replace(rs("TagVon"),"Mi", 3)
tageV(3) = replace(rs("TagVon"),"Do", 4)
tageV(4) = replace(rs("TagVon"),"Fr", 5)
tageV(5) = replace(rs("TagVon"),"Sa", 6)
tageV(6) = 7
'for example: mo - fr
for each item in tageV
'save smallest weekday
if(CInt(item) <= niedrigsterTag) then
niedrigsterTag = CInt(item)
end if
next
Response.write("niedrigsterTag = " & niedrigsterTag)
循环遍历数组,每次找到较小的值时,都会为变量赋值。循环完成后,变量将保持最小值。
顺便说一下,你得到7的原因是因为那是唯一让它超过if语句的价值。