C和java里面就没有所谓函数和过程的区分:它们都是函数。在我的理解中,函数和过程的区别仅在于函数有返回值,而过程没有。
过程的定义是这样的:
sub MySub()
end sub
函数要有返回值,所以定义的时候要说明返回值的类型。函数的定义是这样的:
function MyFunction() as Object 'as子句标明了函数返回值的类型
end function
过程和函数可以带参数。比如下面这个过程:
public sub AddOne(Byval n as Integer) 'n是传入的参数,函数当中可以对n进行操作。
Console.WriteLine(n + 1)
end sub
调用这个过程的时候直接写:
AddOne(3)
就可以了。
完整的代码如下,你可以运行一下:
imports System
public module MyModule
sub Main
AddOne(3) '这里调用函数AddOne并传入一个参数3
Console.ReadLine
end sub
public sub AddOne(Byval n as Integer) '这里是函数AddOne的定义
Console.WriteLine(n + 1)
end sub
end module
函数是有返回值的。我们写一个函数,传入一个整数,函数返回这个数的加二。例如给它3,它返回5。
public function AddTwo(Byval n as Integer) as Integer
return n + 2 'return后面的表达式就是这个函数要返回的东西
end function
因为他返回一个整数,所以我们可以象使用整数一样使用这个函数。完整的使用这个函数代码如下:
imports System
public module MyModule
sub Main
Console.WriteLine(AddTwo(3)) '这里使用函数AddTwo
Console.ReadLine
end sub
public function AddTwo(Byval n as Integer) as Integer
return n + 2
end function
end module
像前面“输入输出”一章的那个加法例子,我们可以这样写:
imports System
public module MainModule
public sub Main()
dim i, j as integer
i = ReadNumber("第一个数:")
j = ReadNumber("第二个数:")
Console.WriteLine("{0}:{1}", "结果是", i + j)
Console.Read
end sub
public function ReadNumber(Byval Message as String) as Integer
Console.WriteLine(Message)
return cint(Console.Readline)
end function
end Module
这样,main函数看起来简洁多了。
本文地址:http://com.8s8s.com/it/it43099.htm