Re: [VB6 ] 不曉得蟲躲在那裡..囧

看板Visual_Basic作者 (喲)時間11年前 (2013/04/07 11:30), 編輯推噓3(3029)
留言32則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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
另外讓我辯駁一下吧..對M大所用認真一詞,絕非是無聊的同
04/08 00:21, 2F

04/08 00:22, , 3F
義字....最近靠著10多年前的舊筆計本,重溫寫寫小程式的
04/08 00:22, 3F

04/08 00:27, , 4F
樂趣(沒記錯的話應該是VB5),憶起當時老師的授課,總是返
04/08 00:27, 4F

04/08 00:32, , 5F
回值/RETURN一個數字(字串.字符等等),講解用的簡易程式
04/08 00:32, 5F

04/08 00:34, , 6F
差不多就像我PO上去的那樣(倒不如說是我照原樣搬上吧),
04/08 00:34, 6F

04/08 00:42, , 7F
已我目前的理解程度a=a(1),就是把a(1)的值return給a,
04/08 00:42, 7F

04/08 00:58, , 8F
印象中,以前的課堂上也大多直接用return,而且現在的新
04/08 00:58, 8F

04/08 01:00, , 9F
版本很難用,google一下vb return,有篇提到函數返回值
04/08 01:00, 9F

04/08 01:03, , 10F
用法為a=a(1),所以才會想說都是一樣的東西,就用return
04/08 01:03, 10F

04/08 01:07, , 11F
做代表,所以當M大指出時,我的反應是"哇!對小細節這麼
04/08 01:07, 11F

04/08 01:09, , 12F
認真"。
04/08 01:09, 12F

04/08 01:12, , 13F
現在我用的是畢業前夕拿到的VB6教學版,雖然有去下載2010
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
M大很正常 程式就是這樣 對就是對 不對就是不對
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
3年1班全體到訓導處報到! 3年1班就只是一群學生的代表詞
04/09 03:37, 19F

04/09 03:38, , 20F
所以用了3年1班後,還需要一一唱名嗎?
04/09 03:38, 20F

04/09 03:40, , 21F
而我發生問題的地方,正是沒有使用return代表的地方....
04/09 03:40, 21F

04/09 03:55, , 22F
重點就是L大所提醒的遞迴回傳值,如果我看不懂自己寫的,
04/09 03:55, 22F

04/09 03:57, , 23F
在原PO文上的問題處也加上return,那有問題就變沒問題
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
推s3748679 大大XDD
04/12 21:52, 32F
文章代碼(AID): #1HOEXU5F (Visual_Basic)
文章代碼(AID): #1HOEXU5F (Visual_Basic)