ASP的for循环显示问题
<%dimafora=1to100-1Response.Write(a&"<br>")next%>这个结果显示的最后a=99<%dimafora=1to100-1next...
<%
dim a
for a=1 to 100-1
Response.Write(a&"<br>")
next
%>
这个结果显示的最后a=99
<%
dim a
for a=1 to 100-1
next
Response.Write(a&"<br>")
%>
这个显示的是100,为什么会有2种不同的值?最后的值不都应该是99吗? 展开
dim a
for a=1 to 100-1
Response.Write(a&"<br>")
next
%>
这个结果显示的最后a=99
<%
dim a
for a=1 to 100-1
next
Response.Write(a&"<br>")
%>
这个显示的是100,为什么会有2种不同的值?最后的值不都应该是99吗? 展开
6个回答
展开全部
不是的。其实for循环如果不设置它的步进step,那么就是默认的每循环一次就给变量加1。相当于js中 for(i=0; i<=100-1; i++) 。只不过 i++ 没有给出来吧。
比如上面 a=1,那么打印出a的值为1.然后a就加1,和(100-1)比较,如果小于等于(100-1),就继续执行循环体内的代码,这时就打印a的值2,如此继续下去。当在最后,打印完a为99的时候,a在加1,注意这时a的值是100,和(100-1)比较,显然大于(100-1)。所以循环体内的代码不执行。但继续执行循环体 for next后面的代码,这时当然会打印a的值100了。
如将第一个代码最后next后添加 Response.Write(a&">>><br>") ,你会发现打印出的是100.
这儿for有个步进就是每次循环后a加多少的问题,如
dim a
for a=1 to 100-1 step 10
Response.Write(a&"<br>")
next
%>
它就会每循环次a+10,打印如下
1
11
21
31
41
51
61
71
81
91
比如上面 a=1,那么打印出a的值为1.然后a就加1,和(100-1)比较,如果小于等于(100-1),就继续执行循环体内的代码,这时就打印a的值2,如此继续下去。当在最后,打印完a为99的时候,a在加1,注意这时a的值是100,和(100-1)比较,显然大于(100-1)。所以循环体内的代码不执行。但继续执行循环体 for next后面的代码,这时当然会打印a的值100了。
如将第一个代码最后next后添加 Response.Write(a&">>><br>") ,你会发现打印出的是100.
这儿for有个步进就是每次循环后a加多少的问题,如
dim a
for a=1 to 100-1 step 10
Response.Write(a&"<br>")
next
%>
它就会每循环次a+10,打印如下
1
11
21
31
41
51
61
71
81
91
展开全部
你怎么不把两个程序合起来看呢,你在你的第一个程序的next之后输出a,你会发现结果也是100。
for循环就是这样的,需循环体里面最大值是循环的终止,循环结束后循环控制变量为终止的下一个值。
for循环就是这样的,需循环体里面最大值是循环的终止,循环结束后循环控制变量为终止的下一个值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个呀a=99仍然符合循环条件
a=100时,a>99 跳出循环
a=100时,a>99 跳出循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是的。其实for循环如果不设置它的步进step,那么就是默认的每循环一次就给变量加1。相当于js中
for(i=0;
i<=100-1;
i++)
。只不过
i++
没有给出来吧。
比如上面
a=1,那么打印出a的值为1.然后a就加1,和(100-1)比较,如果小于等于(100-1),就继续执行循环体内的代码,这时就打印a的值2,如此继续下去。当在最后,打印完a为99的时候,a在加1,注意这时a的值是100,和(100-1)比较,显然大于(100-1)。所以循环体内的代码不执行。但继续执行循环体
for
next后面的代码,这时当然会打印a的值100了。
如将第一个代码最后next后添加
Response.Write(a&">>><br>")
,你会发现打印出的是100.
这儿for有个步进就是每次循环后a加多少的问题,如
dim
a
for
a=1
to
100-1
step
10
Response.Write(a&"<br>")
next
%>
它就会每循环次a+10,打印如下
1
11
21
31
41
51
61
71
81
91
for(i=0;
i<=100-1;
i++)
。只不过
i++
没有给出来吧。
比如上面
a=1,那么打印出a的值为1.然后a就加1,和(100-1)比较,如果小于等于(100-1),就继续执行循环体内的代码,这时就打印a的值2,如此继续下去。当在最后,打印完a为99的时候,a在加1,注意这时a的值是100,和(100-1)比较,显然大于(100-1)。所以循环体内的代码不执行。但继续执行循环体
for
next后面的代码,这时当然会打印a的值100了。
如将第一个代码最后next后添加
Response.Write(a&">>><br>")
,你会发现打印出的是100.
这儿for有个步进就是每次循环后a加多少的问题,如
dim
a
for
a=1
to
100-1
step
10
Response.Write(a&"<br>")
next
%>
它就会每循环次a+10,打印如下
1
11
21
31
41
51
61
71
81
91
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
呵呵,这是一个for与next组成循环的常识,
1. 因为第一个构成了循环语句,所以在a从1到99时都在循环输出,
a在执行到99时是最后一句,故最后输出为99,而next过后,a为100超出for的范围,故而不继续执行,也就输出不了了
2.第二个则构成一个空循环,没有值输出,只有最后一个语句打印出a的值,在循环到a=99时,空循环完成,这时next语句把a变成了100,终于跳出循环,这时轮到输出语句,只输出一个100,即当前a的值
1. 因为第一个构成了循环语句,所以在a从1到99时都在循环输出,
a在执行到99时是最后一句,故最后输出为99,而next过后,a为100超出for的范围,故而不继续执行,也就输出不了了
2.第二个则构成一个空循环,没有值输出,只有最后一个语句打印出a的值,在循环到a=99时,空循环完成,这时next语句把a变成了100,终于跳出循环,这时轮到输出语句,只输出一个100,即当前a的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询