问一个关于VB的小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/15 14:29:52
Private Sub Command1_Click()
a$ = "1223458764"
d$ = Left(a$, 1)
For i = 2 To Len(a$)
Z$ = Mid$(a$, i, 1)
If Z$ > d$ Then d$ = Z$
Next i
Print d$
End Sub
上述代码输出的结果是多少,请各位把解析过程说的清楚一些,因为我的VB水平实在有限,谢谢!!!!

结果为8;
执行如下:
a$ = "1223458764" '声明了一个字符型变量a,同时进行赋值,程序执行完这句a的值为"123456789"(字符型)
d$ = Left(a$, 1) '声明了一个字符型变量d,同时,用Left函数从a的第一个字符开始取1个字符,就是"1",所以d="1"(字符型)
For i = 2 To Len(a$) '这是一个循环,当i=2,i=3...i=10(Len()求a的长度,"1223458764"长度为10)
Z$ = Mid$(a$, i, 1) '定义一个字符型变量Z,同时将a中的第i个字符赋值给Z
If Z$ > d$ Then d$ = Z$ '如果Z>d,则将Z的值赋给d,字符大小的比较是依据ASCⅡ码大小进行的,比如:0的ASCⅡ码为48,1的ASCⅡ码为49...9的ASCⅡ码为57。
Next i '令i值加1

Print d$ '在窗体上打印出字符d
执行的顺序如下:
i=2时,Z=2,ASCⅡ码为50,而此时d=1,ASCⅡ码为49,所以,Z>d(50>49),执行d$=Z$,结果是d=2
i=2时,Z=2,ASCⅡ码为50,而此时d=2,ASCⅡ码为50,所以,Z=d(50=50),不执行d$=Z$,结果是d=2
...
i=6时,Z=8,ASCⅡ码为56,而此时d=5,ASCⅡ码为53,所以,Z>d(57>53),执行d$=Z$,结果是d=8
i=7时,Z=7,ASCⅡ码为55,而此时d=8,ASCⅡ码为56,所以,Z<d(55<56),不执行d$=Z$,结果是d=8
..
最后所得的结果是d=8,在窗体上打印的字符是 8

上题中,len(a)=10,故z=Mid(a,10,1)=4.开始时d=1,在循环处理时d的结果是a前10位中最大数,即等于8,因此最后输出结果为8。