关于C++子程序中return返回值的问题,请各路大虾帮忙!!!

关于C++子程序中return返回值的问题,请各路大虾帮忙!!!,第1张

函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。对函数的值(或称函数返回值)有以下一些说明:

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/yw/12392506.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存