一条VB题求解

来源:百度知道 编辑:UC知道 时间:2024/05/16 02:23:01
题目是:
Private Sub Form_Click()
k = 2
If k >= 1 Then a = 3
If k >= 2 Then a = 2
If k >= 3 Then a = 1
Print a

End Sub

明明第一个条件已经为TRUE,理应输出的答案是为3的啊,
为何输出的答案是为第二个条件的,即答案为2的?

他的运行过程是这样:
如果K大于或着等于1,则A=3!
如果K大于或着等于2,则A=2!
第三个条件都不符合!则退出!
他将A赋了两次值!所以最后输出是2!
你可以在每一次判断之后输出一次A!这样就会输出:3,2!!!

胡扯。

程序的执行是从上到下一直执行的,在满足第一个条件之后,你并没有用break或者return跳出程序,所以程序一直执行下去,去判断第二个if,第二个也满足了条件,所以a=2覆盖了a=3,输出结果也就是a=2了。

vb里面跳出程序好像是break;
在C里面用的是return,你可以查查break的用法,在每个if里面加一个break试试。

你这样的结构,程序只会输出最后一次成立的结果.虽说K>=1各K>=2都成立,但K>=2在后面,所以A=2
而你的这个程序不能这么编,只能编成=号,因你的结果有所对应的成立条件太多了,这个程序,我说等于3正确,但等于2也正确,

因为程序是一条条语句执行的.你这段程序又不是一个循环.当然是第二条语句的答案了..
k>=2的啊.

程序的执行是从上到下一直执行的,在满足第一个条件之后,直到用break跳出程序.要不程序会一直执行下去.