
1) 函数的值只能通过return语句返回主调函数。
return 语句的一般形式为:
return 表达式;
或者为:
return (表达式);
该语句的功能是计算表达式的值,并返回给主调函数。在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。宏裤或
2) 函数值的类型和函数定义中函数的纯胡类型应保持一致。如果两者不一致,则以函数类型为准,自动进行类型转换。
3) 如函数值为整型,在函数定义时可以省去类型说明。
4) 不返回函数值的函数,可以明确定义为“空类型”,类型说明符为“void”。
void s(int n)
{ ……
}
一旦函数被定义为空类型后,就不能在主调函数中使用被调函数的函数值了。例如,在定义s为空类型蔽伍后,在主函数中写下述语句
sum=s(n)
就是错误的。
为了使程序有良好的可读性并减少出错,凡不要求返回值的函数都应定义为空类型。
return的作用是结束子程序的运行,然后将返回值发送给调用者,供调用者分析调棚拍用的情况。比如可以这样约定,某个函数返回0表示没有出错,返回1表示有计算错误,返回-1表示有严重系统错误...,也可以约定返回计算结果,比如:double sin(double x)就是约定返回给定弧度制的x值计算正弦函数的值返回给伏缺调用者使用。调用者也可以不理会返回值的。
至于返回语句后面跟表达式,是返回链厅羡表达式值的意思。
void对应return就是结束子程序,返回调用点。要知道子程序中可以有多个返回点。当然子程序最后一个return由于没有返回值的问题可以省略。
楼上错了!在vb中,return语句并不是用在函数的返回值上,这一点跟C和C++不同。主要用在下面两个语句:
1) GoSub...Return 语句
语法:
GoSub line
...
line:
...
Return
必要的 line 参数可以是任何行标签或行号
说明:
可以在过程中的任何地方使用 GoSub 和 Return,但是 GoSub 和与之相应的 Return 语句必须放在同一个过程中。一个子程序中可以包含一个以上的 Return 语句,但是当碰到第一个 Return 语句时,程序就会返回到紧接在刚刚执行的 GoSub 语句之后的语句继续执行。
注意: 不能使用 GoSub...Return 来进入或退出 Sub 过程。
提示: 创建分开的过程,并使用 GoSub...Return 来调用,可以使程序更具结构化。
示例:
Sub GosubDemo()
Dim Num
' 请求用户输入一个数字。
Num = InputBox("Enter a positive number to be divided by 2.")
' 如果用户输入一个正整型,则使用子程序。
If Num >0 Then GoSub MyRoutine
Debug.Print Num
Exit Sub ' 使用 Exit 命令来避免错误发生。
MyRoutine:
Num = Num/2 ' 将数除以 2。
Return ' 将控制返回 GoSub 之后的语句。
End Sub
2) On...GoSub + Return 语句
语法:
On expression GoSub destinationlist
expression: 必要参数。数值表达式,其运算结果应该是一个界于 0 到 255 之间的整数,包含 0 和 255。如果 expression 的计算结果不是一个整数,则它会先四舍五入为一个整数。
destinationlist: 必要参数。行号或行标签的列表,之间要以逗号隔开。
说判喊明:
expression 的值会决定转到 destinationlist 中的哪一行。如果 expression 的值小于 1 或大于列表弯消的项目个数,则会产生下面的结果之一:
等于 0: 控制权会转移到 On...GoSub 之后的语句。
大于串的项目个数: 控制权会转移到 On...GoSub 之后的语句。
负数: 会发生错误。
大于 255:会发生错误。
可以在同一个列表中混合使用行号埋冲知和行标签。在 On...GoSub 中也可随意使用任意个行号和行标签。但是,如果使用了太多的行标签或行号,以至于在一行中放不下,那么就必须在一行后使用续行符来衔接到下一行。
示例:
Sub OnGosubGotoDemo()
Dim Number, MyString
Number = 2 ' 设置变量初值。
' Branch to Sub2.
On Number GoSub Sub1, Sub2 ' 在 On...GoSub 退出后,程序会回到此处来继续完成。
Exit Sub
Sub1:
MyString = "In Sub1" : Return
Sub2:
MyString = "In Sub2" : Return
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)