繁体   English   中英

C++ 函数的返回值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM