VB next 没有 for
Private Sub Command1_Click()
Dim a As Integer, b As Integer, m As Integer
a = 0
b = 0
For i = 2 To 1000
For m = 1 To 999
If m \ i Then
a = m
a = a + b
b = a
Next m
End If
If b = i Then Print i; "是一个完全数"
End If
Next i
End Sub
补充:题目是求1000以内的完全数(即除本身以外的所有因数加起来等于其本身,如6=1+2+3.28+1+2+4+7+14)
答案: 这个错误说明VB没有在 Next 前找到 For 语句,这导致VB无法找到循环体的结尾。
让我截取其中几点解读一下你的代码:
Next m '循环体语句结束(错误原因,应与下句调换)
End If'结束条件判断语句(这句应该在循环体内)
If b = i Then Print i; "是一个完全数"Rem:我看到 i 后面有一个;(分号),这应该是不需要的。Print语法Print (#FileNumber) [要显示的内容] 其中若加上(#FileNumber),内容将会被输出到文件上。
你的错误之处已经标在代码分析中了。你的算法我没有分析,我只是对你的语法进行了指正。
切记:当代码中有太多跳转、循环时,你要检查代码看看一些 配对的关键词的所在位置。
代码有很多问题 next m和end if位置要调换一下,下面的if b=i then 条件在后面的话就不用end if 还有a和b用integer会溢出 解决上述三个问题还不能解决证明算法有问题 if m\i then这个判断条件应该也有问题
Private Sub Command1_Click()
Dim a As Integer, b As Integer, m As Integer
a = 0
b = 0
For i = 2 To 1000
For m = 1 To 999
If m \ i Then
a = m
a = b
b = m
End If
Next m
If b = i Then Print i; "是一个完全数"
Next i
End Sub
其实我不知道你想要的是啥子意思,你的程序有错误。。。给我题目,我给你看看。。For i = 2 To 1000
。。。
next i
for 在next前面,是循环的开始
上一个:vb 多线程
下一个:怎样学好VB?