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

return with inner loop in a function which returns value

本文关键字:内部 循环 返回 返回值 函数      更新时间:2023-10-16

我对返回在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
}

循环不会"发生任何事情"。和往常一样,return从函数返回。

循环消失在遗忘中,就像return语句后面的任何代码一样。

唯一"发生"的是,您的自动存储持续时间对象(粗略地说,您的本地变量)将被自动销毁。

return语句,来自任何最深的if语句、循环或开关;将导致程序控制向调用方返回。对于非void函数,它可能会返回一个值,或者简单地退出当前函数,而不为调用者提供任何输出

除了函数之外,return语句也可以类似地用于退出lambda(因为C++11)。语义保持不变。因此,如果在lambda(或多级嵌套lambda)中看到return语句,它们可能不会从函数返回,而只能从给定的lambda返回。

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

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