Powershell函数不会突破循环

时间:2015-01-25 22:52:15

标签: .net loops powershell for-loop recursion

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

function Get-nextAvailable {
    param (
        $tree
    }

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

}

1 个答案:

答案 0 :(得分:0)

您正在打破最新的控制元素。

如果你需要突破另一个,你可以使用标签。有关详细信息,请参阅help about_break

顺便说一下:为什么break为什么不直接返回?

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