作者clifflu ( 冏rz)
看板Visual_Basic
标题Re: [VB6 ] if 跟 elseif 的差别
时间Sat Jan 26 15:21:06 2008
1. 程式格式化 (适当的加上缩排和换行) 会比较容易看 虽然问题点不在这 XD
※ 引述《xu3jp68 (信箱爆炸..XD)》之铭言:
: For t = 1 To 20
: If t <= 10 Then
: u = 1
: If 11 <= t <= 20 Then
: u = 2
: End If
: End If
: Print u
: Next t
: 上面的程式执行完u全部都是2,为什麽在前10次回圈他不会显示1呢?
: 或是改成(只有end if 位置的差别)
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: If t <= 10 Then
: u = 1
: End if
: If 11 <= t <= 20 Then
: u = 2
: End If
: 一样全部都是2,那这个跟上面的差别在哪边呢?
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 如果希望前10次显示1後10次显示2只能用elseif不能直接用if去做吗?
: 新手发问,感谢大家的帮忙。
你的问题在於 11 <= t <= 20 这行
应写作 11 <= t AND t <= 20 才能如预期运作。
11 <= t <= 20 会被解读为 (11 <= t ) <= 20
true <= 20
1 <= 20 [布林值 true 会被转为 int 的 1]
true
该表述式为恒真,所以你的 u 永远都是 2
--
鬼压床怎麽办
骑上去啊
Blog: http://blog.roodo.com/clifflu/ Since October, 2006
Photo Galelry: http://clifflu.pixnet.net/ 没有了 T_T
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.194.36
1F:推 xu3jp68:感谢你,那请问用elseif跟if之间的执行速度有差别吗? 01/26 15:24
2F:推 xu3jp68:第一个程式改完,之後变成全部都是1,不知道问题出在哪边? 01/26 15:39
3F:推 xu3jp68:恩..我查书知道了,不过还是不知道既然if跟ifelse都可以做 01/26 15:56
4F:→ xu3jp68:一样的事情,那其中有什麽差别呢,例如执行速度等等。 01/26 15:57