作者A1pha ([αλφα])
看板Visual_Basic
标题Re: [VB6 ] 关於程序的问题..
时间Sun Nov 12 16:46:34 2006
※ 引述《fumizuki (蒙面加菲狮)》之铭言:
: ※ 引述《A1pha ([αλφα])》之铭言:
: : 我在写程序的时候,
: : 发现,
: : 电脑会自动「切割」程序...
: : 像是,我原本要写个程序:
: : Private Sub Command1_Click()
: : x = val(txt1)
: : y = val(txt2)
: : z = 5
: : Function add(a as single, b as single) as single
: : add = a + b + z
: : End Function
: : print add(x,y)
: : end sub
: 第一,语法错误,sub 或 function 中不可包含 sub 或 function
: : 後来,我想说,好吧,
: : 你要切就切吧,
: : 我从外面呼叫应该可以吧。
: : 然後面成这样:
: 第二,参数 a as single ,预设使用 by reference,资料型态必须相同
: : Private Sub Command1_Click()
: Dim x As Single, y As Single
: : x = val(txt1)
: : y = val(txt2)
: : z = 5
: : print add(x,y)
: : end sub
: : ------------------------------------------------
: : Function add(a as single, b as single) as single
: : add = a + b + z
: : End Function
: : 结果会出现对话框:add必须是函数或变数。
: 我实际执行的结果,并没有这个错误讯息啊
: : add明明就是函数啊.....
: : 後来改成:
: : Private Sub Command1_Click()
: : x = val(txt1)
: : y = val(txt2)
: : z = 5
: : add(x,y)
: : end sub
: : ------------------------------------------------
: : Function add(a as single, b as single) as single
: : add = a + b + z
: : Print add
: : End Function
: : 结果则会出现对话框:必须是: =
: 应该叫做「必须有 =」
: : 没头没脑的...什麽叫做必须是 =......
: : 回去翻书,看不出个所以然...里面只说「不论有无引数,都可以不必加()」
: : 写个程序搞的我晕头转向的@@"
: : 希望板友能不吝解答! 感谢~
: 正确写法:
: Option Explicit
: '要求变数必须宣告,
: 加了这行如果没有下一行的话,
: Command1_Click() 和 add() 里面的 z 皆会出现警告讯息:变数未定义。
: Private z As Single
: '没有这行的话, Command1_Click() 和 add() 里面的 z 是不同的变数。
: Private Sub Command1_Click()
: Dim x As Single, y As Single
: x = val(txt1)
: y = val(txt2)
: z = 5
: Print add(x,y)
: End Sub
: Function add(a As Single, b As Single) As Single
: add = a + b + z
: End Function
感谢板大!!
领悟到了很多东西XD
不过有两个问题我一直解决不了@@"
我写了几个超简单程序来测试,如下:
=====================
Case 2.
Option Explicit
Private Sub Command1_Click()
say (1)
End Sub
Sub say(a As Single)
Print a
End Sub
正常执行,会印出 "1"。
=====================
Case 3.
Option Explicit
Private Sub Command1_Click()
say (1,2)
End Sub
Sub say(a As Single, b As Single)
Print a
Print b
End Sub
会出现,编译错误:必须是:=
======================
还是搞不懂Case 1 和 3到底问题出在哪.....O_Q
还烦请大大们劳心解答@@"
Case 1解决了XD 我耍笨把Sub、Function 写错了
--
伊蝶尔:
「接受命运的人,可以得到幸福
违抗命运的人,可以得到荣耀」
你的选择呢.....?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.8.65.104
※ 编辑: A1pha 来自: 124.8.65.104 (11/12 16:48)
1F:→ mojamoja:Fuction和sub好像不一样,fuction会传回一个值sub是程序 11/12 16:59
2F:→ A1pha:对喔~我笨 在测试一次~ 11/12 17:05
3F:→ A1pha:喔喔! Case1 我耍笨XD 改成Function 就可以了XD 11/12 17:10
4F:→ A1pha:剩下Case 3...囧 11/12 17:11
※ 编辑: A1pha 来自: 124.8.65.104 (11/12 17:11)
※ 编辑: A1pha 来自: 124.8.65.104 (11/12 17:12)
※ 编辑: A1pha 来自: 124.8.65.104 (11/12 17:13)
5F:→ feying:要用 Call say(1, 2) 或 say 1, 2 11/14 22:17
6F:→ A1pha:喔喔! 好怪喔@@ 谢谢啦!!XDDD 11/16 03:30
7F:→ gofin:say(1)跟say (1) ..case 1电脑判读成say 1 case 2就需要= 11/17 15:34
8F:→ A1pha:谢谢~XD 我回去试试看~XD 11/17 20:47