VB程序结果什么
private sub command1_clice()dim arr1(10) as lnterger,arr2(10) as lnteger
n=3
for i=1to5
arr2(n)=2*n=i
next i
print arr2(n);arr1(n)
end sub
补充:里头有几个字母错了 click integer.
补充:里头有几个字母错了 click integer.
答案:自己将以下代码运行一遍就非常清楚了,改n值是为了方便说明问题.
Option ExplicitPrivate Sub command1_Click()
Dim arr1(10) As Integer, arr2(10) As Integer, n As Integer, i As Integer
n = 2
For i = 1 To 5
arr2(n) = 2 * n = i
MsgBox 2 * n = i '注意看布尔值
Print "arr2(" & i & ")=" & arr2(n), "arr1(" & i & ")=" & arr1(n)
Next i
End Sub
运行结果:
arr2(1)=0 arr1(1)=0
arr2(2)=0 arr1(2)=0
arr2(3)=0 arr1(3)=0
arr2(4)=-1 arr1(4)=0
arr2(5)=0 arr1(5)=0
VB中,布尔类型转为整型时,True=-1,False=0;
若利用CBool将整型转为布尔型时,任何非零值为True,零值为False;
当i=4时,2*n=i的布尔值为True,所以arr2(4)的值为-1.
回到原题,运行结果肯定是:0 0.
说明:该程序执行完之后,arr2(n)=0,arr1(n)=0,因为这一句 arr2(n)=2*n=i 实际上是先执行 2*n=i 这个判断,最后执行这一句时: 2*n=i 实际上是 2*3=5 ,这个判断(6=5)是假(false),在VB6中假值转换为整型类型为数值0,
所以程序的输出结果是:
0 0
明显的结果是覆盖的、所以只看最后一次运行的结果就行、把6=5的结果赋值给数组、结果为假,所以结果都为0
最关键的地方在倒数第4行:arr2(n)=2*n=i 这条语句有2个等号
该语句等同于:arr2(n)=(2*n=i)
如果我这么写,就好理解了。首先,程序运算2*n=i,最后一次执行循环时,i=5,因此2*n=i的值为False,转换为Integer类型的值为0.
随后再运行赋值语句,将0赋值给arr2(n)都是0两个0
上一个:求VB字符串处理函数。
下一个:VB如何播放背景音乐