是否可以使用循环反复返回?

时间:2017-03-30 11:45:24

标签: python-3.x loops for-loop while-loop return

for循环(或while循环)中的return语句是否会破坏循环?我希望每次循环运行时都有一个函数返回一个值。

以下是我的参考代码: (前两个函数位于名为NYTHeadings的.py文件中。如果它可以保持这种状态,那将是理想的。)

function presentMenu{
param ([string]$menuType)

if($menuType = "Main"){
     Write-Host "MAIN MENU: 1.) Add Scanner 2.) Remove Scanner 3.) Lookup Scanner Config 4.) Exit"
     $command = Read-Host
     ##DEBUG## write-host $menuType

     if ($command -eq 1){
         presentMenu("addScaner")
     }
     elseif ($command -eq 2){

     }
     elseif ($command -eq 3){

     }
     elseif ($command -eq 4){
        exit
     }
     elseif ($command -eq 5){
        exit
     }
    else{
        presentMenu("Main")
    }
  }

elseif($menuType = "addScanner"){
    Write-Host "ADD SCANNER: 1.) From File 2.) From Input 3.) Back  4.) Exit"
    $command = Read-Host
    if ($command -eq 1){
        addScannerController("File")
    }
    if ($command -eq 2){
        addScannerController("Input")
    }
    if ($command -eq 3){
        presentMenu("Main")
    }
    if ($command -eq 4){
        exit
    }
    else{
        presentMenu("addScanner")
    }       
  }
}


try{
presentMenu("Main")
}
catch{
  Write-Error $_.Exception.ToString()
  Read-Host -Prompt "The above error occurred. Press Enter to exit."
}

提前致谢。

1 个答案:

答案 0 :(得分:2)

普通的for循环确实会在return语句中断开。但是,您实际上可以使用yield运算符代替return来实现,这会将您的函数转换为生成器

https://wiki.python.org/moin/Generators了解有关发电机的更多信息。