我有一个外层循环和一个内层循环,每个循环都在一定范围内迭代。当内部循环中满足条件时,我想退出外部循环。
我有一个解决方案,使用两个'break'来实现,在内部循环中使用一个,在外部循环中的内部循环之外使用另一个(仅用于演示的非常简化的情况):
package main
import (
"fmt"
)
func main() {
word := ""
for _, i := range("ABCDE") {
for _,j := range("ABCDE") {
word = string(i) + string(j)
fmt.Println(word)
if word == "DC" {
break
}
}
if word == "DC" {
break
}
}
// More logic here that needs to be executed
}
这个解决方案没有问题,但我觉得它看起来很丑陋。有更好的方法吗?
我可以尝试在前一个解决方案的外部再加上一个条件循环并使用标签和 continue,但正如你所看到的,这种方法并不比使用 break 更优雅。
package main
import (
"fmt"
)
func main() {
word := ""
Exit:
for word != "DC" {
for _, i := range "ABCDE" {
for _, j := range "ABCDE" {
word = string(i) + string(j)
fmt.Println(word)
if word == "DC" {
continue Exit
}
}
}
}
// More logic here that needs to be executed
}
我在这里看到了类似于其他编程语言(如C,C#,Python等)的相关问题。但我真正感兴趣的是是否有任何关于Go构造的技巧,例如'for select'。
return
是否合适? - Richard Chamberstrue
或false
,甚至是单词本身。您可以在该函数中使用return
。 - kkesley