请问这是什么问题,为什么进入死循环
![TIM图片20190120111732.png](https://static.studygolang.com/190120/1ee1ca5c20c3bb68bf25c6a2552cab9d.png)![TIM图片20190120111739.png](https://static.studygolang.com/190120/37d6a74cadaf428f390f451e9bc5f8bf.png)
还有一个问题,就是为什么这样写不是得到五次“请输入一个学生成绩”,一次一行,而是只有三次,而且两次都是“请输入一个学生成绩:请输入一个学生成绩:”,是我“Scanf”用错了吗?
![TIM图片20190120112039.png](https://static.studygolang.com/190120/b9b6ea242fd033f006fe32e62f501559.png)![TIM图片20190120112042.png](https://static.studygolang.com/190120/0ddd572df3140f7d198f55a2fdd2b39e.png)
请大佬指教
第一个问题,把 k i 都改成 int,否则如果定义 k 为 uint,第一次循环的时候,k = -1 就会溢出。
第二个问题,把 fmt.Scanf 改成 fmt.Scanln
#1
更多评论
您好,谢谢解答,第一个溢出的问题弄明白了,但是第二个问题我还是不明白为什么,我之前也用过“fmt.Scanln”,可以达到我想要的效果,但是为什么“fmt.Scanf”就不行了呢?
#2
Scanf从标准输入扫描文本,根据format 参数指定的格式将成功读取的空白分隔的值保存进成功传递给本函数的参数。
此处的空白符不包括换行符。程序把换行符也当成了一个输入
#3