Powershell 函数不会跳出循环

Powershell function would not break out of loop

我有一个 powershell 函数,它应该 return 树中的下一个可用节点以预先排序的方式,基本上是一个尚未遍历的节点。但是,我发现代码不会退出到调用函数的地方,而是 returns 到函数的 foreach 循环并跳转到下一个分支,我不确定我到底做错了什么。这是代码:

function Get-nextAvailable {
    param (
        $tree
    }

    $nextNode = $null
    foreach ($branch in $tree){
        if ($branch.traversal -eq $false){
            return $branch      
        }
        else {
            Get-nextAvailable ($branch.children)
        }
    }

}

您正在突破最近的控制元素。

如果你需要打破不同的,你可以使用标签。有关详细信息,请参阅 help about_break

顺便说一句:为什么 break 那为什么不直接 return 呢?

此外,您没有使用嵌套 Get-nextAvailable 调用的 return 值。