[英]C++ return value of a function
我遇到了一个问题,在解决方案中我得到了以下功能:
bool interesting(int n){
for(int i = 1; i <= n; i++){
if(sum(n+1, 0) < sum(n, 0)
return true;
}
}
也就是说,给定一个数字 n 来验证下一个数字的 sum(n+1,0) 是否小于前一个数字。 但是我想知道该函数是否会返回 true 或 false,因为我有多个 i 要循环。
int sum(int n, int m) { return -1; }
bool interesting(int n){
for(int i = 1; i <= n; i++){
if(sum(n+1, 0) < sum(n, 0))
return true;
}
// miss return here
}
int main() {}
这可能无法编译。 即使它编译,它也会产生一个未定义的行为。 对于返回 bool 的函数,函数中的所有路径都应该返回一个值。
警告:非空函数不会在所有控制路径中返回值
此外,一旦满足该条件,此函数将以 true 退出。 我认为这就是你需要的:
int sum(int n, int m) { return -1; }
bool interesting(int n){
bool result = true;
for(int i = 1; i <= n; i++){
if(!(sum(n+1, 0) < sum(n, 0)))
result = false;
}
return result;
}
编辑:我假设您的代码无法编译是错误的。 碰巧在某些编译器上它确实编译但发出警告
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.