我想要执行一组代码,直到用户明确想要退出该功能。例如:当用户运行该程序时,他将看到 2 个选项:
- 再次运行
- 出口
这将使用开关盒结构来实现。这里如果用户按下 1,将执行与 1 关联的一组函数,如果用户按下 2,程序将退出。我应该如何在 golang 中实现这种情况?在 java 中,我相信这可以使用 do while 结构来完成,但 go 不支持 do while 循环。以下是我试过的代码,但这是一个无限循环:
func sample() {
var i = 1
for i > 0 {
fmt.Println("Press 1 to run")
fmt.Println("Press 2 to exit")
var input string
inpt, _ := fmt.Scanln(&input)
switch inpt {
case 1:
fmt.Println("hi")
case 2:
os.Exit(2)
default:
fmt.Println("def")
}
}
}
该程序不管输入如何,只打印“hi”。有人可以纠正我在这里做错了什么吗?
谢谢。
原文由 Vrushank Doshi 发布,翻译遵循 CC BY-SA 4.0 许可协议
当这个问题被问到时,这是 针对这个特定场景 的更好答案(我几乎不知道这将是在谷歌搜索“do while loop golang”时排名第一的结果)。要笼统地回答这个问题,请参阅 下面的@LinearZoetrope 的回答。
将您的函数包装在一个 for 循环中:
没有任何声明的
for
循环等同于其他类 C 语言中的while
循环。查看涵盖for
循环的 Effective Go 文档。