我一直试图创建这个序列:
2,7,17,37,67,...
我必须先打印10个系列号码。
为此,我创建了以下内容:
option explicit
Dim m,n,i,str,d
m=2
d=10
n=7
For i=0 to 10
n=n+d
d=d+10
str=str&n&vbcrlf
msgbox str
next
我无法打印前两个数字2
和7
,因为它们是在for循环之前声明的。即使我将它们存储在一个名为str
的变量中,它们也会在每次执行后打印出来。有没有办法添加这两个并只打印一次。
答案 0 :(得分:1)
在开始运行序列之前,您可以将初始值m
添加到字符串中。然后,将n
的值附加到循环的 start 而不是结尾的字符串中,以便捕获n
的初始值。例如:
m=2: d=10: n=7
str = m & vbCrLf ' Capture initial value of m
For i = 1 to 9
str = str & n & vbCrLf ' Capture initial value of n
n = n + d
d = d + 10
Next
MsgBox str
请注意,您现在只循环了9次,因为您已经在循环之前捕获了序列中的第一个数字(m
)。
我还将MsgBox
移到你的循环之外,这样它只会在生成完整的10个数字序列后出现一次。