看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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
neorange:獲益良多.. 04/08 00:16
neorange:另外讓我辯駁一下吧..對M大所用認真一詞,絕非是無聊的同 04/08 00:21
neorange:義字....最近靠著10多年前的舊筆計本,重溫寫寫小程式的 04/08 00:22
neorange:樂趣(沒記錯的話應該是VB5),憶起當時老師的授課,總是返 04/08 00:27
neorange:回值/RETURN一個數字(字串.字符等等),講解用的簡易程式 04/08 00:32
neorange:差不多就像我PO上去的那樣(倒不如說是我照原樣搬上吧), 04/08 00:34
neorange:已我目前的理解程度a=a(1),就是把a(1)的值return給a, 04/08 00:42
neorange:印象中,以前的課堂上也大多直接用return,而且現在的新 04/08 00:58
neorange:版本很難用,google一下vb return,有篇提到函數返回值 04/08 01:00
neorange:用法為a=a(1),所以才會想說都是一樣的東西,就用return 04/08 01:03
neorange:做代表,所以當M大指出時,我的反應是"哇!對小細節這麼 04/08 01:07
neorange:認真"。 04/08 01:09
neorange:現在我用的是畢業前夕拿到的VB6教學版,雖然有去下載2010 04/08 01:12
neorange:,但是實在是.....比天書還難懂,對版上的巨匠而言,我的 04/08 01:16
neorange:確是還在泥巴坑裡打滾的醜小屁孩的程度吧..... 04/08 01:17
s3748679:M大很正常 程式就是這樣 對就是對 不對就是不對 04/08 20:44
s3748679:沒有什麼認真不認真的 這不過就是事事求是罷了(認真樣 04/08 20:46
neorange:認真好詞,也是件好事,事事求是就是認真。 04/09 03:30
neorange:3年1班全體到訓導處報到! 3年1班就只是一群學生的代表詞 04/09 03:37
neorange:所以用了3年1班後,還需要一一唱名嗎? 04/09 03:38
neorange:而我發生問題的地方,正是沒有使用return代表的地方.... 04/09 03:40
neorange:重點就是L大所提醒的遞迴回傳值,如果我看不懂自己寫的, 04/09 03:55
neorange:在原PO文上的問題處也加上return,那有問題就變沒問題 04/09 03:57
neorange:這才是真不懂吧.. 04/09 03:58
s3748679:推你的認真 (雖然我還是否定你說的代表性.. 04/10 23:22
s3748679:不過還是可以接受 因為我的話 大概也會維護自己說法 就醬 04/10 23:25
neorange:吃一行飯,說一行話。外行人有時難以理解內行人執著的點 04/11 21:03
neorange:在什麼地方。所以沒有維護不維護的問題,即然想學(雖然是 04/11 21:07
neorange:玩票性質),我想我也該好好思考一下這個點才行。 04/11 21:08
s3748679:嗯 04/11 21:55
s3748679:嗯~ (我真神經病.. 回來加這條鬚鬚 04/11 22:01
ymzk:推s3748679 大大XDD 04/12 21:52