我有一个看起来像这样的函数:
int Game::GetInput() {
while (true) {
// do stuff
if (something) {
// do this
return 0;
}
else {
// do other stuff
}
}
}
我想知道返回函数而不是void函数是否常见或正确,仅仅是为了离开函数(返回的值除了结束之外不会在程序中执行任何操作功能)。这是一个好的做法,还是有更好的方法来结束一个功能?
答案 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
是否为假。