首页 新闻 会员 周边

jsp为什么这样返回值呢?

0
[已解决问题] 解决于 2011-11-04 13:46
1
2 <%!static int I = 0;
3 int j = 0;%>
4 <html>
5 <body>
6 循环之前j的值:<%=j%>
7 <%
8 for (; j++ < 2;) {
9 out.print("循环中j=" + j+"<br>");
10 out.print("循环中I="+I++);
11 out.print("");
12 }
13 %>
14 循环之后j的值:<%=j%>

 

当第一个用户访问时,他们的值为:
循环之前j的值:0 循环中j=1
循环中I=0
循环中j=2
循环中I=1
循环之后j的值:3

当第二个用户访问时,他们的值为:
循环之前j的值:0 循环中j=1
循环中I=2
循环中j=2
循环中I=3
循环之后j的值:3

当第三个用户访问时,他们的值为:
循环之前j的值:3 循环之后j的值:4


当第四个用户访问时,他们的值为:
循环之前j的值:4 循环之后j的值:5

以后的用户访问,只有j在累加。

为什么在第二个用户访问时,j的值没有累加,在第三个用户访问时才累加呢?

为什么在没有static时,第一个用户访问时,他们的值为:
循环之前j的值:0 循环中j=1
循环中I=0
循环中j=2
循环中I=1
循环之后j的值:3

第二个用户访问时,他们的值为:
循环之前j的值:3 循环之后j的值:4

这是为什么呢?

悟行的主页 悟行 | 专家六级 | 园豆:12559
提问于:2010-10-14 12:23
< >
分享
最佳答案
0

static变量访问冲突,几个用户应该不是一个访问完第二个再来的,似乎有个并发的过程

Gray Zhang | 专家六级 |园豆:17610 | 2010-10-14 13:51
我试了的,是一个访问完下一个再来的
悟行 | 园豆:12559 (专家六级) | 2010-10-14 15:50
其他回答(1)
0

你的问题在于你的访问次数与值你自己都没搞清楚,我看完后程序没错,显示也没有你说的问题,是你自己的逻辑不清楚。自己再仔细看看吧,没有问题。

茂茂 | 园豆:2892 (老鸟四级) | 2010-10-15 10:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册