VB中的Sub過程沒有返回值和Function區別?最好能舉個實列

2022-02-27 04:08:23 字數 3785 閱讀 7068

1樓:尉遲谷雪隨木

其實是這樣的:

vb.net中有三個型別的過程:sub.function.property.

sub過程執行操作,但不向呼叫他的過程返回值.例如,時間處理程式都是sub過程.他們在響應時間時執行.

function可以想呼叫他的過程返回值.例如,messagebox.show語句就是一個function過程.

property過程可以返回類、結構或模組屬性的值,或向他們賦值。

現在清楚了吧

2樓:匿名使用者

是的,sub 和function函式的區別是一個沒有返回值和一個有返回值。

下面這例子,是求守形數.如5^2=25,6^2=36 就是守形數. 守形數(n^2=xxn)就是原來是幾位,然後經過平方後,取和原數的位數一樣的最後幾位,來比較是否相等。

private sub command1_click()dim i as integer

for i = 1 to 100

print f(i);

next i

end sub

function f(n as integer)dim k as integer

k = 10

do while (n mod k <> n)k = k * 10

loop

if (n = (n ^ 2 mod k)) then f = nend function

3樓:半邊河

vb中sub過程,一定沒有反回值,而function可有可無均不會報錯。

通常情況下,只要是function定義的函式本來是需要寫返回值的,即函式最後需要寫 fun = somevalue,這樣函式在執行完畢之後就會有一個返回值。

但是如果你不想這個函式有返回值,不加也可以,而此時無返回值的函式與sub沒什麼區別;但是之所以要寫成function我猜可能是便於將來維護,又要求這個函式有返回值而保留的吧。

4樓:匿名使用者

過程就是執行一個操作,函式是需要返回值的

vb sub和function過程的區別

5樓:匿名使用者

沒有 sub沒有返回值

function有返回值

比如 sub a(num as integer)

end sub

那麼你不能dim s:s = a(123)

而如果function a(num as integer)

end function

你就可以

dim s:s = a(123)

返回值:

如果sub要返回只能通過變數

如 sub a(num as integer)

num = num + 1

end sub

其他地方

這裡a(s)把s的記憶體地址傳進了sub,然後sub裡面對這個num=num+1就相當於s=s+1了。

如果用function則可以寫成這樣:

function a(num as integer)

num = num + 1

a = num

end function

其中a=num這裡a就是過程名

外部使用:

dim s:s = 0:a(s):msgbox "now s=" & s:s = a(s):msgbox "now s=" & s

call a(s):function也具有傳記憶體地址的功能,當然function還有返回值:s = a(s)。

具體返回值型別:

[private | public] function 函式名字 (引數) as 返回值型別

說白了 sub是一個過程 給了它內容不能直接返回一個內容的,只能間接;而function是一個函式,例如數學中函式y=kx,其中輸入x那麼y就是kx的值,這裡也一樣,有返回值(如把y=2x寫成vb的函式就是:

function y(x as integer) as integer

y = 2x

end function

6樓:速芙問清婉

function是函式

函式可以帶返回值,

返回值當然要定義型別

所以要多一個as

資料型別

說到返回值

我相信你知道函式是什麼意思

就像數學中的函式f(x)

給定x之後

函式就會求得一個值,這個值返回給呼叫的地方就叫做返回值

而sub是過程

過程不能帶返回值

7樓:匿名使用者

sub沒有返回值

而function 做為一個函式使用,則有返回值. 當用call呼叫時..沒有返回值

8樓:匿名使用者

function稱為函式

sub稱為過程

函式可以有返回值,把處理結果直接賦值給函式本身

比如樓主問題裡:fun=x,就是把結果直接賦值給函式!這就是函式的返回值!

函式在使用時,不能單獨使用(極個別除外)!

比如,print fun(a),前面新增了輸出語句!或者y=fun(a),將函式返回值賦值給變數y!所以函式返回值就如同變數一樣!

當然如果你寫一個沒有返回值的函式,那它其實就跟sub一樣,是個過程!

過程沒有返回值,只能對資料進行處理,需要另外通過變數來傳遞處理後的資料!

而且過程可以單獨使用!

在vb中sub和function有什麼區別?

9樓:匿名使用者

sub是一個過程,只要求執行完畢

function是一個函式,要有返回的值

10樓:匿名使用者

sub沒有返回值 function有返回值 比如 sub a(num as integer) end sub 那麼你不能dim s:s = a(123) 而如果 function a(num as integer) end function 你就可以 dim s:s = a(123) 返回值:

如果sub要返回只能通過變數 如 sub a(num as integer) num = num + 1 end sub 其他地方:dim s:s = 0:

a(s):msgbox "now s="&s 這裡a(s)把s的記憶體地址傳進了sub,然後sub裡面對這個num=num+1就相當於s=s+1了。 如果用function則可以寫成這樣:

function a(num as integer) num = num + 1 a = num end function 其中a=num這裡a就是過程名 外部使用: dim s:s = 0:

a(s):msgbox "now s=" & s:s = a(s):

msgbox "now s=" & s call a(s):function也具有傳記憶體地址的功能,當然function還有返回值:s = a(s)。

具體返回值型別: [private | public] function 函式名字 (引數) as 返回值型別 說白了 sub是一個過程 給了它內容不能直接返回一個內容的,只能間接;而function是一個函式,例如數學中函式y=kx,其中輸入x那麼y就是kx的值,這裡也一樣,有返回值(如把y=2x寫成vb的函式就是: function y(x as integer) as integer y = 2x end function參考:

vb 怎麼 在自定義函式中,返回多個值?請舉例說明

sub 按鈕1 click dim 周長 as double,面積 as double,半徑 as double 周長 0 面積 0 半徑 15 call subn 周長,面積,半徑 msgbox 周長 面積 end sub sub subn byref 周長引數,byref 面積引數,byval ...

vb中round的用法vb中round函式是什麼意思?

vb中 round 是四捨五入取偶函式,用法是round expression numdecimalplaces expression引數必需的。表示需要被四捨五入的表示式。numdecimalplaces引數可選的。規定對小數點右邊的多少位進行四捨五入。預設是 0。visual basic源自於b...

vb中關於exit sub問題,VB 中的exit do 怎麼理解

exit sub 的作用是結抄束當前的過程bai 不再執行後續程式。針對本程du序,exit sub 的作用是檢查到 未選zhi擇該新增的項dao目 或 專案已經存在 的時候,就不再執行 list2.additem list1.list list1.listindex exit sub 在一來般情況...