Re: [VB6 ] 不曉得蟲躲在那裡..囧
※ 引述《neorange (被罰跪主機板的)》之銘言:
: function func(參數)
: .
: .
: if 條件成立 then
: .
: .
: [messagebox "OK"+參數值]
: return TRUE
: elseif 參數 > 0 then
: [messagebox "囧"+參數值]
: func(參數-1)
: else [elseif 參數 <= 0] //也試過更改成[]中判斷
: return FALSE
: end if
: end function
(略)
: → neorange:呃..M大好認真XD return只是個代表性用法..@@ 04/06 16:00
: → yauhh:不過vb6這個詞並不是個代表性用法唷,熟vb6的人都會覺得奇怪. 04/07 10:46
若要講語法是不是一個代表性而已,那就傷感情了.
假如你提了vb6的傳回值語法,那就跟指定沒兩樣,的確有模糊混淆的機會.
例如,在以上 elseif 中,你忘了傳回值要寫成 func = func(參數-1) 卻寫做
func(參數-1), 確實有可能被問題迷惑,一時找不出答案.
而你提到用 return 做個代表性用法,那就表示你打算比較精準地談每一句的意思,
很顯然,寫到 return 就表示有傳回值,而假如沒有寫到 return, 你怎麼好意思再套用
vb6的語意空間來談什麼bug不bug的事情? 真要說代表性,沒寫 return 意思就是,
對於傳回值一事,並沒有明確定義.
而且,當你寫了什麼有 return 而什麼沒有 return, 自己卻看不懂意思,這不是顯明了
你根本不熟這個代表性的意義嗎?
所以,對於一項明確的語言語法的認真,這"認真"並不是"無聊"的同義詞. 你用"認真"來
加以回應,看似瀟灑實則不知自醜. vb6是實務上仍有人使用的語言,所以你標題指出
[VB6 ]這個符號,內文中本人解釋卻說: 雖然沒return但寫個return意思到了就算數,
那麼,你想要人用代表性(抽象)的語意來給你解答,還是用具體的語意來給你解答?
好,你原有這問題的原因是:
function func(參數)
if 符合條件 then
return True
elseif 參數 > 0 then
func(參數-1) '''這裡不傳回值,所以函式內容還沒有中斷於此
else
return False
end if
end_func: '''在此我打個標記,當做函數結尾
'''這裡雖然沒有寫東西,但是對 elseif 段落來說,存在著一個語意:
'''因以上函式內容,走過 elseif 時都沒有對 func 函式定義傳回值,
'''所以,預設的傳回值,若評估為bool型態則是 False.
end function
因此,你所看到的執行結果是: 囧10 囧9 OK8 False, 其中 "囧10 囧9 OK8" 是
elseif 部份的行經路線,而 "False" 是走過 end_func 之後而獲得的結果.
這就是你所說的 "蟲" 的來源.
以上解釋,應該也算是代表性吧,用別的語言也有同樣的情況.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.55.108
推
04/08 00:16, , 1F
04/08 00:16, 1F
→
04/08 00:21, , 2F
04/08 00:21, 2F
→
04/08 00:22, , 3F
04/08 00:22, 3F
→
04/08 00:27, , 4F
04/08 00:27, 4F
→
04/08 00:32, , 5F
04/08 00:32, 5F
→
04/08 00:34, , 6F
04/08 00:34, 6F
→
04/08 00:42, , 7F
04/08 00:42, 7F
→
04/08 00:58, , 8F
04/08 00:58, 8F
→
04/08 01:00, , 9F
04/08 01:00, 9F
→
04/08 01:03, , 10F
04/08 01:03, 10F
→
04/08 01:07, , 11F
04/08 01:07, 11F
→
04/08 01:09, , 12F
04/08 01:09, 12F
→
04/08 01:12, , 13F
04/08 01:12, 13F
→
04/08 01:16, , 14F
04/08 01:16, 14F
→
04/08 01:17, , 15F
04/08 01:17, 15F
→
04/08 20:44, , 16F
04/08 20:44, 16F
→
04/08 20:46, , 17F
04/08 20:46, 17F
→
04/09 03:30, , 18F
04/09 03:30, 18F
→
04/09 03:37, , 19F
04/09 03:37, 19F
→
04/09 03:38, , 20F
04/09 03:38, 20F
→
04/09 03:40, , 21F
04/09 03:40, 21F
→
04/09 03:55, , 22F
04/09 03:55, 22F
→
04/09 03:57, , 23F
04/09 03:57, 23F
→
04/09 03:58, , 24F
04/09 03:58, 24F
推
04/10 23:22, , 25F
04/10 23:22, 25F
→
04/10 23:25, , 26F
04/10 23:25, 26F
→
04/11 21:03, , 27F
04/11 21:03, 27F
→
04/11 21:07, , 28F
04/11 21:07, 28F
→
04/11 21:08, , 29F
04/11 21:08, 29F
→
04/11 21:55, , 30F
04/11 21:55, 30F
→
04/11 22:01, , 31F
04/11 22:01, 31F
推
04/12 21:52, , 32F
04/12 21:52, 32F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章