看板 Visual_Basic 關於我們 聯絡資訊
各位大大好 小弟想要請問一個程式的問題 麻煩大大破除我的觀念 private sub form_activate() 'main program k=game(5) print k end sub function game(x) if (x>1) then game=x*game(x-1) else game=1 '主要是這一行 end if end function 有同事問我 為何不是game(1)=1 小弟是覺得不對 但為何不對 又無法用一個簡單明瞭的觀念來說明 vb2008 告訴我 運算式是一個數值,不可以是被指派的目標 我就更無言了........何謂是被指派的目標 ??? 再麻煩各位大大解除我心中的疑惑 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.242.12
fumizuki:game是函數非變數,不可以指派任何數值... 10/29 22:01
kinkipikachu:請問 game(x-1) 要如何解釋呢? 這不是函數嗎 ?? 10/29 22:09
kinkipikachu:雖然我知道這個是在做遞迴求階層 但VB的觀念我解釋 10/29 22:09
kinkipikachu:不出 10/29 22:14
Y78:game=x*game(x-1) game(x-1)是去呼叫game這個函式 然後取得值 10/29 22:19
Y78:你可以把 game = x 看成C語言中的 return x; 我覺得會比較好懂 10/29 22:19
Y78:return x*game(x-1); 10/29 22:20
Y78:game = 1 其實就很像是 return 1; 的意思 10/29 22:21
MOONRAKER:你問VB6還是VB2008?這個程式不能用於VB2008你知道嗎? 10/29 22:22
kinkipikachu:感謝y大的指導 如果用C語言 更快~~ 10/30 06:45
kinkipikachu:我比較熟C VB真的完全不熟 ~~ 10/30 06:46
kinkipikachu:對不起 是我沒說明清楚 我有更改一些地方 10/30 07:10
kinkipikachu:我用 TEXT 丟出輸出 但是主架構不變 感謝M大 10/30 07:10
MOONRAKER:<函數名>=<傳回值>這是VB6的寫法,承襲自老VB/QB系列 10/30 09:01
MOONRAKER:到VB2008改用C-fashion的return <傳回值> 10/30 09:01
MOONRAKER:(其實應該是VB2003/.NET 1.1就改了) 10/30 09:01
ymzk:這不是高中計算機概論的題目嗎0.0 囧 10/31 19:29
MOONRAKER:高中現在有計算機概論!? 10/31 19:38
ymzk:有哇@@" 我們剛上完不久@@" 10/31 23:03