[VBA ] 希望達到目標後 變數的值不要被之後的괠…

看板Visual_Basic作者 (卜拉)時間16年前 (2009/10/06 23:46), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/2 (看更多)
Function MCm2(s, x, dt, r, v, n, Num, T, cap) For i = 1 To Num st = s For j = 1 To n st = st * Exp((r - v ^ 2 / 2) * dt + v * Sqr(dt) * Normal()) If st >= cap Then tsum = j Prin = Exp(-r * tsum) Else Prin = Exp(-r * T) End If Next Sum = Sum + Prin Next MCm2 = Sum / Num End Function 我的問題是 想讓變數st 一旦比某個值(cap)還大 就把目前為止跑迴圈的次數 j 指定給tsum 而且就算之後st又跌下來 然後又再次往上漲突破某值(cap) tsum還是可以保存第一次突破cap值所花費的迴圈次數 而不被之後再次突破所花費的迴圈次數所覆蓋 不過我總覺得我這樣寫好像有錯= = 請告訴我該怎麼寫比較好 謝謝各位!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.217.163 ※ 編輯: blabla690 來自: 140.123.217.163 (10/06 23:47)

10/07 00:06, , 1F
(1)一突破就exit for別做了(2)用一個陣列 K 儲存
10/07 00:06, 1F

10/07 00:07, , 2F
第一次突破存在 K(1) , 第二次存在 K(2) , 依此類推
10/07 00:07, 2F

10/07 00:11, , 3F
謝謝!!~再問個笨問題...exit for要加在哪阿._.?
10/07 00:11, 3F

10/07 00:22, , 4F
加在if裡面,要記得他只會離開最裡面的一層for
10/07 00:22, 4F

10/07 00:23, , 5F
又,以上寫(1)(2)是要你兩種方法擇一
10/07 00:23, 5F

10/07 00:28, , 6F
好的,我了解了:P 非常感謝你!!~~
10/07 00:28, 6F
文章代碼(AID): #1AosPVsb (Visual_Basic)
文章代碼(AID): #1AosPVsb (Visual_Basic)