作者TrueFeeling (昨日之死)
看板Visual_Basic
標題Re: [VB6 ] 計算機
時間Fri Jun 10 21:47:29 2005
※ 引述《fumizuki (小獅子)》之銘言:
: ※ 引述《TrueFeeling (昨日之死)》之銘言:
: : Eval分成Eval(op1)和Eval(op2),但是如果op2裡面還有運算子的時候,
: : 1.為什麼Eval能傳出值?
: Function就是要做這用途的...
: : 2.離開的話,剩下的運算子好像還沒處理
: 一個離開,還有其它相同的函數還在執行...
你是說,Eval分成Eval(op1)和Eval(op2)
然後每一個Eval又可以分成Eval(op1)和Eval(op2)這樣嗎?
以下面這個為例
p = InStr(s, "+")
If p > 0 Then GoSub SplitProc: Eval = Eval(op1) + Eval(op2): GoTo EndProc
如果Eval分成Eval(op1)和Eval(op2)但是如果跳出方程式的話,不是就結束了嗎
GoSub SplitProc是重新跑方程式
GoTo EndProc是結束方程式
如果我上面的判斷沒錯的話,GoSub SplitProc和GoTo EndProc是衝突的
可是卻同時進行?讓我覺得很矛盾
: : 可是,InStr 的第一個參數,指定要從第幾個字元開始尋找
: : 那個參數要有一個確定的數字的樣子,所以不懂為什麼可以用p
: : 而且p也用來作為InStr函數的傳出值,所以我這邊很混亂
: 沒人說不能用變數啊...
: 函數的每一個參數本來就是個變數...
: 就算是常數傳進去,在函數的本體還是以變數在看待
不好意思,我天資駑鈍,還是不懂><(原諒我吧orz)
可是p如果是變數的話,電腦要從第幾個字元開始找起呢
還是說p是承接上面 p=2 Else p=1 的p
: : 這邊有一個問題:
: : 就是如果一開始直接用Val(s)取代Eval的話,我覺得這樣應該比較直接
: : 所以不懂這邊Eval的用意
: 上面說了,s必須是一個數值,才能夠進行轉換,否則得到的數會是零。
: Eval 的目地就是要把運算子與運算元分離,Val()並不會幫你做計算的工作...
--
少年讀書,如隙中窺月;
中年讀書,如庭中望月;
老年讀書,如臺上玩月。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.162.90.149
※ 編輯: TrueFeeling 來自: 218.162.90.149 (06/11 03:20)