作者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
推 xu3jp68:感謝你,那請問用elseif跟if之間的執行速度有差別嗎? 01/26 15:24
推 xu3jp68:第一個程式改完,之後變成全部都是1,不知道問題出在哪邊? 01/26 15:39
推 xu3jp68:恩..我查書知道了,不過還是不知道既然if跟ifelse都可以做 01/26 15:56
→ xu3jp68:一樣的事情,那其中有什麼差別呢,例如執行速度等等。 01/26 15:57