当前位置:编程学习 > VB >>

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.
答案:自己将以下代码运行一遍就非常清楚了,改n值是为了方便说明问题.
Option Explicit

Private 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)
    Print
    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如何播放背景音乐

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,