vb 这段程序的结果为什么是这样?

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:45:59
x = 0
Do Until x >= 20
x = (x + 2) * (x + 3)
n = n + 1
Loop
Text1.Text = Str(n)
Text2.Text = Str(x)
为什么n的值是2?按理说n根本就没有初值,那么n=n+1应该完全是没有什么意义的。哪位高手解释一下。

我认为:
代码中定义X的初始值为0,第一次循环,X=(x+2)×(x+3)的值应该是6,N是1,也就是说,经过这次运算,x的值变为了6,不满足X大于等于20的条件,进入第二次运算,X=(x+2)×(x+3)的值变成72,n是2,这时,满足了X大于等于20的条件,退出循环,故,运算结果N是2。
另外,VB有一个特性,那就是变量不经过定义也可以使用,就像你在本例中,并没有定义N,但仍可以使用。作为一个程序员,我不建议养成这样的习惯。如果定义了N为int类型变量的话,如果没有给N赋初始值,那么N的初始值就会默认为0。并不是没有初始值的。

n在第一次使用时,其值默认为零,而不是没有初值,
第一次循环时,n=0,x=0,结束后,x=6,n=1
第二次循环结束时,x=72,n=2,
第三次时,因x>20条件成立所以退出do...loop