asp中的for循环问题???
<%a1=5a2=10a3=66fori=1to5huizong=huizong+a&inext%>总和等于:<%=huizong%>问题:得出的结果为字符累加...
<%
a1=5
a2=10
a3=66
for i=1 to 5
huizong=huizong+a&i
next
%>
总和等于:<%=huizong%>
问题:得出的结果为字符累加 展开
a1=5
a2=10
a3=66
for i=1 to 5
huizong=huizong+a&i
next
%>
总和等于:<%=huizong%>
问题:得出的结果为字符累加 展开
4个回答
展开全部
huizong=huizong+a&i错误
你的a1,a2,a3是一个变量名,变量名是不能用变量+变量的形式得到的,你这样只能得到a和i的值的字符累加,在这个程序里,你没有给变量a赋值 那么 huizong+a&i实际上相当于 huizong+"0"&i,得到的结果应该是:0102030405。
如果此处你想要以循环的方式得到总和,建议将a1,a2,a3转换成数组,给你个例子
<%dim a(5)
a(1)=5
a(2)=10
a(3)=66
for i=1 to 5
huizong=huizong+a(i)
next %>
你的a1,a2,a3是一个变量名,变量名是不能用变量+变量的形式得到的,你这样只能得到a和i的值的字符累加,在这个程序里,你没有给变量a赋值 那么 huizong+a&i实际上相当于 huizong+"0"&i,得到的结果应该是:0102030405。
如果此处你想要以循环的方式得到总和,建议将a1,a2,a3转换成数组,给你个例子
<%dim a(5)
a(1)=5
a(2)=10
a(3)=66
for i=1 to 5
huizong=huizong+a(i)
next %>
展开全部
huizong=huizong+a&i
改成
eval("huizong=huizong+a"&i)
改成
eval("huizong=huizong+a"&i)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%
dim a(10)
a(1)=5
a(2)=10
a(3)=66
huizong=0
for i=1 to 3
huizong =huizong+a(i)
next%>
总和等于:<%=huizong%>
这样才对
dim a(10)
a(1)=5
a(2)=10
a(3)=66
huizong=0
for i=1 to 3
huizong =huizong+a(i)
next%>
总和等于:<%=huizong%>
这样才对
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码最终结果是很奇怪的 "012345"
问题所在
你的语句 huizong=huizong+a&i 中的a&i 那是一个字符串表达式,是把当前a的值和当前i的值最为字符串联接起来,所得的结果就是一个字符串,因为没有变量a,所以a为空,a&i联接的结果就是:"1","2","3"等,而这些字符串不可能代表变量a1,a2,a3等。
而对于huizong=huizong+a&i 中的 + 由于是和字符串相加,所以被处理成字符串联接,而不是数字相加,按前面所说结果应该是"12345"而不是"012345"。 那这又是为什么呢?实际上如果你用的代码是huizong=huizong&a&i,这个结果就会是"12345"。
原来由于在表达式huizong=huizong+a&i中,VBS解释程序先碰到了huizong+ ,于是她默认huizhong是一个数值数据,所以在这里已经把huizhong的初值被设为0了,但后来碰到了字符串表达式a&i,才把+作为字符串链接来处理,于是前面就多了huizhong的初值0,从而得到"012345"
解决方法上面都提到了,不再重复
问题所在
你的语句 huizong=huizong+a&i 中的a&i 那是一个字符串表达式,是把当前a的值和当前i的值最为字符串联接起来,所得的结果就是一个字符串,因为没有变量a,所以a为空,a&i联接的结果就是:"1","2","3"等,而这些字符串不可能代表变量a1,a2,a3等。
而对于huizong=huizong+a&i 中的 + 由于是和字符串相加,所以被处理成字符串联接,而不是数字相加,按前面所说结果应该是"12345"而不是"012345"。 那这又是为什么呢?实际上如果你用的代码是huizong=huizong&a&i,这个结果就会是"12345"。
原来由于在表达式huizong=huizong+a&i中,VBS解释程序先碰到了huizong+ ,于是她默认huizhong是一个数值数据,所以在这里已经把huizhong的初值被设为0了,但后来碰到了字符串表达式a&i,才把+作为字符串链接来处理,于是前面就多了huizhong的初值0,从而得到"012345"
解决方法上面都提到了,不再重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询