1樓:陰天的藍色
樓上的**寫的不規範
我來說說吧
sub是過程,也就是處理某件事情的過程,處理完成後,什麼也不返回。
而function函式呢,他也是處理事情的過程,但是呢,他處理完後可以返回一個值。
這樣:function sum(a as long,b as long )as long
sum=a+b
end function
這樣才是一個完整的函式
sub sums(a as long,b as long)
dim sum as long
sum=a+b
end sub
這就是一個過程
由上面的函式看,當呼叫函式的時候,傳入了兩個值,然後呢sum=a+b,sum就是這個函式的名稱,當在函式過程裡的時候,函式的名稱也是一個變數,所以在括號後面還有一個as long,也就是說函式的返回值是long型。
當我們呼叫函式的時候:
dim c as long
c=sum(1,2)
函式內部把1和2相加,然後返回1和2的值,然後把這個值給c變更。
再看看上面的過程
當我們呼叫過程的時候
sums(1,2)
在內部它把1和2相加了,但是他沒有返回值,所以過程只是處理事情的,而不能返回一個值。
所以當我們要c=sums(1,2)這樣就不可以,因為過程沒有返回值。
就說這麼多吧
剛才又看了看樓主的問題補充,我再補充一下
q1:返回值是哪個?不懂,我猜是sum對嗎
a1:這個問題我前面說過了,因為函式就相當於一個變數。
q2:還有在過程外你寫a=1,b=2
c=sum(a,b)我看不懂啊
a2:上面的那個回答者,其實應該宣告一下a b變數:
dim a as long
dim b as long
a=1b=2
然後呼叫sum函式,在括號裡的就是呼叫這個函式傳入的引數,當函式執行的時候,函式就可以用這兩個變數來做一些運算等。
因為前面已經宣告瞭a,b變數且a=1,b=2,所以sum(a,b)和sum(1,2)是相同的。
q3:還有sum(1,2)怎麼等於3了,,,這裡沒有加號怎麼自己就
加起來了
a3:當程式執行到sum(a,b)語句的時候,程式就開始呼叫sum函式,然後執行函式裡的語句,函式裡的語句sum=a+b,然後函式返回的值就等於傳入的兩個變數的和了,當執行到end function時,就返回到剛才呼叫函式的地方繼續執行。
ps:我怕你不知道函式傳入引數啥意思,這裡說一下
函式傳入引數就是傳入值,然後進行處理,這兩個值就相當於兩個變數,傳入的引數有兩種傳遞方法,一種byval(傳值),一種byref(傳址),這裡也不多說了,看看書吧,在vb6裡預設傳址byref,在vb.net中預設傳值byval。
2樓:匿名使用者
比如說 sub 執行完程式**後就直接返回了,不會帶回數值。而function執行完**後可以返回一個值,用來返回一個計算結果等數字。
例如:function sum(a,b)
sum=a+n
end function
可以呼叫為:
a=1b=2
c=sum(a,b)
執行後c=3
而sub則不能用「變數=程式名 」來呼叫。
asp時間函式,asp中,獲取當前時間的函式是什麼
基本函式 date 建立日期變數,顯示格式 2004 2 28 time 建立時間變數,顯示格式 22 24 59 now 建立日期和時間變數,顯示格式 2005 5 2 22 37 30 單獨獲取年 月 日 時 分 秒 先建立日期變數d date 獲取年份 year d 獲取月份 month d ...
ASP語法錯誤,請高人幫忙 ASP錯誤的問題?
依你所述!上面有7個檔案,其中有一個檔案第三行出錯了,錯誤資訊中會提示是哪一個檔案的,稍微注意就看到了,把那 覆上來,幫你解決!include file 引用檔案 錯誤資訊是 行 3 說明你的檔案中 又問題,請仔細檢查中的 謝謝。技術交流,請多多指教。頂下 force 1990 他說的沒錯。不過前提...
asp的程式設計問題
false,預設為false,當設定為true時,伺服器端的資料會先輸出到緩衝區,然後再從緩衝區輸出至客戶端,如果取預設狀態下的false,則伺服器端的資料會直接輸出到客戶端瀏覽器。格式 response.buffer true 示例 response.buffer true if request....