当不需要返回值时,我应该使用返回函数吗?

时间:2011-05-02 02:20:18

标签: c++ function return-type

我有一个看起来像这样的函数:

int Game::GetInput() {
    while (true) {
        // do stuff
        if (something) {
            // do this
            return 0;
        }

        else {
            // do other stuff
        }
    }
}

我想知道返回函数而不是void函数是否常见或正确,仅仅是为了离开函数(返回的值除了结束之外不会在程序中执行任何操作功能)。这是一个好的做法,还是有更好的方法来结束一个功能?

4 个答案:

答案 0 :(得分:3)

void函数没有问题。如果它没有返回任何有用的东西,它应该是无效的。

答案 1 :(得分:1)

只需设置您的功能void,只需return

// vv void return type
void Game::GetInput() {
    while (true) {
        // do stuff
        if (something) {
            // do this
            return;  // <<<< No return value
        }

        else {
            // do other stuff
        }
    }
}

答案 2 :(得分:1)

您可以轻松地使用没有参数的return;来退出void功能。您的上述代码将变为:

void Game::GetInput() {
    while (true) {
        // do stuff
        if (something) {
            // do this
            return;
        }

        else {
            // do other stuff
        }
    }
}

答案 3 :(得分:0)

如果函数没有返回的有用值,最好不要返回值 - 因为调用代码应该检查返回的值。

您的代码可以加倍简化:

void Game::GetInput() {
    while (true) {
        // do stuff
        if (something) {
            // do this
            return;
        }
        // do other stuff
    }
}

else是不必要的;执行'做其他事情'的唯一方法是something是否为假。