一道vb题目求解答

OptionExplicitOptionBase1PrivateSubCommand1_Click()Dima(10)AsInteger,jAsInteger,kAsIn... Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer, j As Integer, k As Integer, i As Integer
For i = 1 To 10
a(i) = 1
Next i
i = 3
Do While i <= 10
If a(i) = 1 Then
j = i + 1
For k = j To 10 Step i
a(k) = 0
Next k
End If
i = i + 1
Loop
For k = 2 To 10
If a(k) = 0 Then
a(k) = k
Print a(k)
End If
Next k
End Sub
问题是问a(3)a(6)a(7)是多少?答案为1,6,7
为什么在do-loop循环中使a(4)a(6)a(7)a(9)a(10)赋值为0啊?我看不懂,希望哪位高手给我解释解释,要详细点
展开
 我来答
chenjijianxx
2010-03-25 · TA获得超过175个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:294万
展开全部
Option Explicit ’强制定义变量
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer, j As Integer, k As Integer, i As Integer ‘定义数组变量a 为整形 定义变量 j k i 为整形
For i = 1 To 10 ’循环 i 10次
a(i) = 1 ‘给数组变量赋值
Next i ’结束循环
i = 3 '给变量i赋值 (这里是重点)
Do While i <= 10 ’进入循环 Do while 循环 条件如果i<=10 则跳出循环
If a(i) = 1 Then
j = i + 1
For k = j To 10 Step i
a(k) = 0
Next k
End If
i = i + 1
Loop
For k = 2 To 10
If a(k) = 0 Then
a(k) = k
Print a(k)
End If
Next k
End Sub

重点解释循环
Do循环
i=3
j=4
a(4)=0
a(7)=0
i=4
j=5
a(5)=0
a(9)=0
i=5
j=6
a(6)=0
i=6
j=7
a(6)=0
....依次类推后 结果就是a(0-3)=1 a(4-10)=0
For k = 2 To 10
If a(k) = 0 Then
a(k) = k
Print a(k)
End If
Next k
End Sub
这句是把数组变量里等于0的值重新赋值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式