C++中包含多条 return 语句的函数

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

C++中包含多条 return 语句的函数

return 语句的作用是终止一个函数的执行结束当前代码块中 return 后的语句即 return 后的语句不再执行从当前位置退出函数。return语句有两种形式

return;
return expresion;

没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非得有return语句因为这类函数的最后一句后面会隐式执行return强行另void函数返回其他类型的表达式将会产生编译错误

return语句的第二种形式提供了函数的结果。只要函数的返回类型不是void则该函数内的每条return语句必须返回一个值。return语句返回值类型必须与函数的返回类型相同或者能够隐式地转换成函数的返回类型。

注意含有return语句的循环后面应该也要有一条return语句如果没有那么程序就是错误的很多编译器都无法发现此类错误

在函数定义中并非只能有一条 return 语句。您可以在函数的任何地方返回如果愿意还可包含多条 return 语句如以下示例程序所示。这可能是糟糕的编程方式也可能不是这取决于应用程序的逻辑和需求。

#include <iostream>
using namespace std;
const double Pi = 3.14159265;

void QueryAndCalculate()
{
    cout << "Enter radius: ";
    double radius = 0;
    cin >> radius;

    cout << "Area: " << Pi * radius * radius << endl;

    cout << "Do you wish to calculate circumference (y/n)? ";
    char calcCircum = 'n';
    cin >> calcCircum;

    if (calcCircum == 'n')
        return;

    cout << "Circumference: " << 2 * Pi * radius << endl;
    return;
}

int main() 
{
    QueryAndCalculate ();

    return 0;
}

输出

Enter radius: 1
Area: 3.14159
Do you wish to calculate circumference (y/n)? y
Circumference: 6.28319

再次执行的输出

Enter radius: 1
Area: 3.14159
Do you wish to calculate circumference (y/n)? n

分析

函数 QueryAndCalculate() 包含多条 return 语句一条位于第 17 行另一条位于第 20 行。如果用户按 n 表示不想计算周长程序将使用 return 语句退出否则将接着计算周长然后返回。

警告

在同一个函数中使用多条 return 语句要谨慎。相对于有多个返回点的函数从顶部开始并在末尾返回的函数要容易理解得多。
在示例程序中使用了多条 return 语句。这很容易避免只需修改 if 条件使其检查用户输入的是否是‘y’ Yes即可
    if (calcCircum == 'y')
        cout << "Circumference: " << 2*Pi*radius << endl;

该文章会更新欢迎大家批评指正。

推荐一个零声学院的C++服务器开发课程个人觉得老师讲得不错
分享给大家LinuxNginxZeroMQMySQLRedis
fastdfsMongoDBZK流媒体CDNP2PK8SDocker
TCP/IP协程DPDK等技术内容
点击立即学习C/C++后台高级服务器课程

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: c++