为啥for循环中的fmt.Scanln()被穿透?

mdjdot · · 975 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

![新建文本文档.jpg](https://static.studygolang.com/191227/56b6852cfa01a7ec083aa51e96cd888c.jpg) ![2.jpg](https://static.studygolang.com/191227/0c0a260b1baca6a69851c1a7e6f85206.jpg) continue后,跳过了fmt.Scanln(&key) package main import ( "fmt" "os" ) func main() { var val int var key string for { fmt.Println(` 1. 输入 add 表示添加数据到队列 2. 输入 get 表示从队列获取数据 3. 输入 show 表示显示队列 4. 输入 exit 表示退出队列`) fmt.Scanln(&key) switch key { case "add": fmt.Println("请输入要添加的数据") _, err := fmt.Scanln(&val) if err != nil { fmt.Println("输入数据不正确,错误:", err) continue } fmt.Println("加入队列成功") case "get": fmt.Println("从队列中取出") case "show": fmt.Println("显示队列数据") case "exit": os.Exit(0) default: fmt.Println("输入命令错误,请重新输入") continue } } }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

975 次点击  
加入收藏 微博
1 回复  |  直到 2019-12-27 12:04:20
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传