作者yauhh (哟)
看板Visual_Basic
标题Re: [VB6 ] 不晓得虫躲在那里..囧
时间Sun Apr 7 11:30:35 2013
※ 引述《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
1F:推 neorange:获益良多.. 04/08 00:16
2F:→ neorange:另外让我辩驳一下吧..对M大所用认真一词,绝非是无聊的同 04/08 00:21
3F:→ neorange:义字....最近靠着10多年前的旧笔计本,重温写写小程式的 04/08 00:22
4F:→ neorange:乐趣(没记错的话应该是VB5),忆起当时老师的授课,总是返 04/08 00:27
5F:→ neorange:回值/RETURN一个数字(字串.字符等等),讲解用的简易程式 04/08 00:32
6F:→ neorange:差不多就像我PO上去的那样(倒不如说是我照原样搬上吧), 04/08 00:34
7F:→ neorange:已我目前的理解程度a=a(1),就是把a(1)的值return给a, 04/08 00:42
8F:→ neorange:印象中,以前的课堂上也大多直接用return,而且现在的新 04/08 00:58
9F:→ neorange:版本很难用,google一下vb return,有篇提到函数返回值 04/08 01:00
10F:→ neorange:用法为a=a(1),所以才会想说都是一样的东西,就用return 04/08 01:03
11F:→ neorange:做代表,所以当M大指出时,我的反应是"哇!对小细节这麽 04/08 01:07
12F:→ neorange:认真"。 04/08 01:09
13F:→ neorange:现在我用的是毕业前夕拿到的VB6教学版,虽然有去下载2010 04/08 01:12
14F:→ neorange:,但是实在是.....比天书还难懂,对版上的巨匠而言,我的 04/08 01:16
15F:→ neorange:确是还在泥巴坑里打滚的丑小屁孩的程度吧..... 04/08 01:17
16F:→ s3748679:M大很正常 程式就是这样 对就是对 不对就是不对 04/08 20:44
17F:→ s3748679:没有什麽认真不认真的 这不过就是事事求是罢了(认真样 04/08 20:46
18F:→ neorange:认真好词,也是件好事,事事求是就是认真。 04/09 03:30
19F:→ neorange:3年1班全体到训导处报到! 3年1班就只是一群学生的代表词 04/09 03:37
20F:→ neorange:所以用了3年1班後,还需要一一唱名吗? 04/09 03:38
21F:→ neorange:而我发生问题的地方,正是没有使用return代表的地方.... 04/09 03:40
22F:→ neorange:重点就是L大所提醒的递回回传值,如果我看不懂自己写的, 04/09 03:55
23F:→ neorange:在原PO文上的问题处也加上return,那有问题就变没问题 04/09 03:57
24F:→ neorange:这才是真不懂吧.. 04/09 03:58
25F:推 s3748679:推你的认真 (虽然我还是否定你说的代表性.. 04/10 23:22
26F:→ s3748679:不过还是可以接受 因为我的话 大概也会维护自己说法 就酱 04/10 23:25
27F:→ neorange:吃一行饭,说一行话。外行人有时难以理解内行人执着的点 04/11 21:03
28F:→ neorange:在什麽地方。所以没有维护不维护的问题,即然想学(虽然是 04/11 21:07
29F:→ neorange:玩票性质),我想我也该好好思考一下这个点才行。 04/11 21:08
30F:→ s3748679:嗯 04/11 21:55
31F:→ s3748679:嗯~ (我真神经病.. 回来加这条须须 04/11 22:01
32F:推 ymzk:推s3748679 大大XDD 04/12 21:52