1 回答

TA貢獻1829條經驗 獲得超7個贊
如果可以,將responsefrom的類型切換為int,然后使用包(例如)string解析輸入字符串。我懷疑正在嘗試將您輸入的每個字符作為單獨的 int 讀取,每次都失敗,并且每次都運行循環(huán),直到所有字符都被消耗完。strconvstrconv.Atoi()Scan
例如
for {
var response string
fmt.Printf("How many %v would you like to buy? ", product.Name)
_, err := fmt.Scanln(&response)
if err != nil { // probably don't need to check err from Scan()
fmt.Println(err)
continue
}
num, err := strconv.Atoi(response)
if err != nil {
fmt.Println("Enter an integer.")
continue
}
if ok, err := validResponse(num); ok && err==nil {
break
} else {
fmt.Println(err)
continue
}
}
- 1 回答
- 0 關注
- 85 瀏覽
添加回答
舉報