大佬教程收集整理的这篇文章主要介绍了带有 if 语句的函数没有返回值,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如果不满足条件,我如何从函数返回。 我正在尝试创建一个除法函数,它将返回将 2 个数字相除的结果,但如果它被零除我如何不返回任何内容。
int div(int n1,int n2)
{
if (n2 > 0)
{
return n1 / n2;
}
}
我在编译时收到此警告:
警告:控制到达非空函数的结尾
我明白这意味着什么,但是如果我不想返回值,我应该在 n2 为 0 的情况下放什么;
如果一个函数有一个返回类型,它必须返回something。因此,您可以:
返回一个函数和调用者同意表示“非值”的标记值,例如:
int div(int n1,int n2)
{
if (n2 != 0)
{
return n1 / n2;
}
else
{
return -1; // or whatever makes sense for your use-case...
}
}
如果没有可用的标记值可以使用,那么您可以使用 std::optional
代替(仅限 C++17 及更高版本),例如:
#include <optional>
std::optional<int> div(int n1,int n2)
{
if (n2 != 0)
{
return n1 / n2;
}
else
{
return std::nullopt;
}
}
或者,您可以更改函数以使用输出参数和 bool
返回值,例如:
bool div(int n1,int n2,int &result)
{
if (n2 != 0)
{
result = n1 / n2;
return true;
}
else
{
return false;
}
}
否则,您只需throw
一个例外,例如:
#include <stdexcept>
int div(int n1,int n2)
{
if (n2 == 0)
{
throw std::invalid_argument("n2 must not be 0");
}
return n1 / n2;
}
以上是大佬教程为你收集整理的带有 if 语句的函数没有返回值全部内容,希望文章能够帮你解决带有 if 语句的函数没有返回值所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。