湿水纸:哪位ASP(VBSCRIPT)高手帮我解答一下,感激不尽!

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 18:15:40
下面有三个程序我实在是弄不明白,请分别讲解,谢谢!
1、<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<script language="vbscript">
<!--
i=1:s=0
do while i<10
s=s+i
i=i+1
loop
document.write "s=" & s
</script>
</body>
</html>

为什么结果是S=55?

2、<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<script language="vbscript">
<!--
i=4
for i=1 to i+1
i=i+1
document.write i
Next
-->
</script>
</body>
</html>

为什么结果是246?

3、<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<SCRIPT language="VBScript">
<!--
j=4
for i=1 to j step 2
document.write i & "<BR>"
j=j+1
next
-->
</script>
</body>
</html>
为什么结果会是1和3?,下面的j=j+1有什么用吗?

4、<html>
<head>
</head>
<body>
<SCRIPT language="vbscript">
<!--
for i=3 to 17 step 3
document.write i
next
document.write "i的终值为:" & i
</SCRIPT>
</body>
</html>

为是什么运行出来的结果会是“3691215i的终值为:18”,前面的36941215是哪里来的,另外,i的最大值不是不能超过17吗,怎么终值为18

我是刚开始学ASP,请高手不吝赐教!~
感激不尽!~

解答:

1. 答案是45么,就是一个从1到9的求和过程欧.最后一次,i=9的时候程序跳出
循环.

2. 最核心的就是这个Next,For...Next本身这个Next就是加1,所以这个循环
实际就是:
for i=1 to 5
i=i+1
document.write i
Next
这样每循环一次就加2,输出2,4,6就不难理解了吧:)

3.又是一个循环,实际就是:
for i=1 to 4 step 2
每次加2的循环,自然结果就是1,3,别的代码是迷惑你的,j=j+1也没用:)

4.又是一个循环,实际就是:
for i=3 to 17 step 3
每次加3的循环,输出为3,6,9,12,15,注意最后一次是i=18,这时它不满足
这个循环的条件,跳出,所以终值就是18,结果就是你看到的了.

真爱学习
1.等价于
s=0
for i=1 to 9
s=s+i
next
document.write s
应该等于45
除非你把<号改成<=才会等于55

2.在i=1时(第一次循环)i=i+1写出的是2.碰到next i又会加一(第二次循环时)这时i已经为3了..i=3+1.输出4
呵呵..好好想想..主要要了解见了next i就加1
3.j=j+1没用..吓你的.
4.3691215是在循环里输出的..每循环一次输出一次I
终值18是因为见了next 所以加一了啊??next 18后..发现比17大了..才会跳出来的.

1.第一题结果是45,仔细一点,i从1加到9就是45。
2.i=1进入循环,i=i+1,i变为2,打印出2,再循环的时候,i的初始值1已经不起作用,这时的循环等价于for i=2 to i+1。条件成立,进入循环的时候i又被to后面的表达式加了1所以i变成3,循环体加1变为4,打印出4,同理打印出6。
3.循环条件等价于for i=1 to 4 step 2 下面的j=j+1是陷阱。j的确是在自增,但条件表达式里的j已经被替换成4,就象循环变量的初始值只用一次,道理一样的。
4.打印出15后,next判断条件,先加3然后再和17比较,比17小就循环,相反就跳出循环,所以跳出循环时值为18。你可以用第三题试验一下。