求高手解释下,xiexie

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:02:06
在窗体上画两个文本框和一个命令按扭,然后程序如下:
Private Sub Command1_Click()
Dim x As Integer, n As Integer
x = 1
n = 0
Do While x < 20
x = x * 3
n = n + 1
Loop

Text1.Text = Str(x)
Text2.Text = Str(n)
End Sub
程序运行后,单击按扭,在两个文本框显示的值分别为27和3.希望有人告诉我为什么是这样,27不是大于20了吗?不符和原题中Do While x < 20的条件.

先要理解Do While x<20 语句 Loop
当x<20时,执行语句,也就是
x = x * 3
n = n + 1

x=1时,x<20成立,执行语句后x=3 n=1
x=3时,x<20成立,执行语句后x=9 n=2
x=9时,x<20成立,执行语句后x=27 n=3
x=27时,x<20不成立,跳出Loop

在两个文本框显示的值分别为27和3

x=9的时候是符合的,就继续*3咯

当X=9的时候 Do While x < 20 判断成立 然后接着循环下去 就 9*3=27
然后Do While x < 20 判断时 x=27 循环停止 所以 x会等于27

如果你想得到9 可以在循环结束后 将x值倒算一步 就是x/3 就行了 其他循环同理

循环执行过程是:
1 < 20
x=3
n=1

3<20
x=9
n=2
注意这个时候x=9<20
因此还会在做一次
x=9*3
n=3
此时判断x<20错误 不再循环
因此 最终 x = 27, n=3