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."
}
提前致谢。
答案 0 :(得分:2)
普通的for循环确实会在return语句中断开。但是,您实际上可以使用yield
运算符代替return
来实现,这会将您的函数转换为生成器。
在https://wiki.python.org/moin/Generators了解有关发电机的更多信息。