在返回值的函数中返回内部循环

时间:2016-05-17 11:34:33

标签: c++

我怀疑在这种情况下返回在C ++中是如何工作的。条件匹配后循环会发生什么,我们需要返回值。

some function(){
    for( )//outer loop with i and other values
    {
        for( )// inner loop with i and other values {
            some condition using if which on match return a value val (call it x here)
            return x;
        }
    }
    return -1
}

3 个答案:

答案 0 :(得分:2)

循环没有“发生”。就像它一直一样,return从函数返回。

循环蒸发成遗忘,就像return语句之后的任何代码一样。

“发生”的唯一事情是你的自动存储持续时间对象(粗略地说,你的局部变量)将被自动销毁。

答案 1 :(得分:2)

return语句,来自任何最深的if语句,循环或开关;将导致程序控制返回给调用者。对于非void函数,它可以返回一个值,或者只是退出当前函数而没有任何输出给调用者。

除了函数之外,return语句可以类似地用于退出 lambda (自C ++ 11起)。语义保持不变。因此,如果您在lambda(或多级嵌套lambda)中看到return语句,则可能不会函数返回,但仅来自给定的lambda。 / p>

在这两种情况下,本地声明的变量都将超出范围,它们的内存(如果由某个指针保持)将无效。将调用析构函数(如果在堆栈上分配)。

答案 2 :(得分:-3)

您已嵌套for循环。但是函数本身返回的常量值为-1。也许你可以更清楚地了解你的问题

相关问题